Ruft den aktuellen Wert einer Einstellung in Vim ab


274

Gibt es eine einfache Möglichkeit, den aktuellen Wert einer bestimmten Vim-Einstellung zu ermitteln? Wenn ich beispielsweise den aktuellen Wert von wissen möchte tabstop, kann ich Folgendes ausführen:

:set tabstop

ohne ein Argument zu übergeben, und Vim wird mir den aktuellen Wert mitteilen. Dies ist für viele Einstellungen in Ordnung, aber für diejenigen, die entweder wahr oder falsch sind, nicht gut. Wenn ich beispielsweise den aktuellen Wert von ausführen möchte, wird Folgendes expandtabausgeführt:

:set expandtab

wird tatsächlich aktivieren expandtab. Ich möchte nur herausfinden, ob es aktiviert ist oder nicht.

Diese Art macht, was ich will:

:echo &l:expandtab

aber es scheint ziemlich ausführlich. Gibt es einen schnelleren Weg?

Antworten:


378

Füge hinzu ein ? Markieren Sie nach dem Einstellungsnamen und es wird der Wert angezeigt

:set expandtab?

15
Beachten Sie, dass die set <...>?Syntax für "Einstellungen" funktioniert, bei denen es sich um Optionen handelt , nicht jedoch für "Einstellungen", bei denen es sich um Variablen handelt . Um beispielsweise herauszufinden, wie der aktuelle Syntaxhervorhebungsmodus lautet (in einer Variablen codiert, keine Option), müssen Sie dies tun echo b:current_syntax.
Maxy-B

16
Wenn Sie auch sehen möchten, woher die Option stammt, verwenden Sie verbose. Für dieses Beispiel :verbose set expandtab.
mkobit

1
Wie sehen Sie den aktuellen Wert von Einstellungen wie behave? Ich habe es versucht behave?und set behave?. Leider funktionieren sie nicht.
jdhao

38

Alternativ kann die & Symbol verwendet werden, um "Option" zu bedeuten - z

let x = &expandtab
echo &expandtab

Gibt es auch eine Option, um den Wert eines Listenelements abzurufen? (zB Platz von Listchars)
816-8055

Ich glaube, Listchars ist eine gewöhnliche Zeichenfolge, keine Liste, obwohl ich denke, Sie könnten so etwas tunsplit(&listchars, ',')
cdyson37

9

Wenn Sie sich nicht erinnern, welche Porperty Sie überprüfen möchten,

Sie können alle Einstellungen mit überprüfen

:set all

und alle Einstellungen werden aufgelistet.


4

Es gibt auch zusätzliche vim-Einstellungen, die ebenfalls angezeigt werden können, wie z.

:highlight

Die vollständige Liste finden Sie unter: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Edit: Es gibt ein Missverständnis meiner Antwort. Dies funktioniert bei keinem Befehl. Es funktioniert jedoch für alle Befehle, die in der obigen URL aufgeführt sind.


Das funktioniert nicht. Ich wollte überprüfen, ob eingeschaltet autowriteist. :set autowrite?macht den Job.
Atcold

@Atcold: Dies funktioniert für einige Einstellungen, für die nur diese Art von Abfrage funktioniert.
gmarmstrong

@gmarmstrong: Ich sehe, dass die Antwort mit einer solchen Bemerkung bearbeitet wurde.
Atcold
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.