Uzyskaj aktualną wartość ustawienia w Vimie

274

Czy istnieje prosty sposób na sprawdzenie aktualnej wartości określonego ustawienia Vima? Jeśli chcę poznać bieżącą wartość, powiedzmy tabstop, mogę uruchomić:

:set tabstop

bez podania argumentu, a Vim powie mi bieżącą wartość. Jest to dobre dla wielu ustawień, ale nie jest dobre dla tych, które są prawdziwe lub fałszywe. Na przykład, jeśli chcę sprawdzić bieżącą wartość expandtab, uruchom:

:set expandtab

faktycznie włączy expandtab. Chcę tylko dowiedzieć się, czy jest włączona, czy nie.

Ten rodzaj robi to, co chcę:

:echo &l:expandtab

ale wydaje się dość gadatliwy. Czy jest szybszy sposób?

nelstrom
źródło

Odpowiedzi:

378

Dodać ? zaznacz po nazwie ustawienia, a wyświetli się wartość

:set expandtab?
JaredPar
źródło
15
Zauważ, że set <...>?składnia będzie działać dla „ustawień”, które są opcjami , ale nie dla „ustawień”, które są zmiennymi . Na przykład, aby dowiedzieć się, jaki jest obecny tryb podświetlania składni (zakodowany w zmiennej, a nie w opcji), musisz to zrobić echo b:current_syntax.
Maxy-B
16
Jeśli chcesz również zobaczyć, skąd ustawiono opcję, użyj verbose. Dla tego przykładu :verbose set expandtab.
mkobit,
1
Jak wyświetlić bieżącą wartość ustawień, takich jak behave? Próbowałem behave?i set behave?. Niestety nie działają.
jdhao
38

Alternatywnie &symbol może oznaczać „opcję” - np

let x = &expandtab
echo &expandtab
cdyson37
źródło
Czy istnieje również opcja uzyskania wartości elementu listy? (np. przestrzeń listchars)
816-8055
Wierzę, że listchars to zwykły ciąg znaków, a nie lista, ale myślę, że możesz zrobić coś takiegosplit(&listchars, ',')
cdyson37
9

Jeśli nie pamiętasz, jakie cechy chcesz sprawdzić,

możesz sprawdzić wszystkie ustawienia za pomocą

:set all

i wszystkie ustawienia zostaną wyświetlone.

徐新晨
źródło
4

Istnieją również dodatkowe ustawienia vima, które można wyświetlić, takie jak:

:highlight

Pełna lista znajduje się na stronie: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Edycja: Istnieje pewne nieporozumienie z moją odpowiedzią. To nie działa dla żadnego polecenia. Ale działa dla wszystkich poleceń wymienionych w powyższym adresie URL.

wisbucky
źródło
To nie działa. Chciałem sprawdzić, czy autowritejest włączony. :set autowrite?wykonuje pracę.
Atcold
@Atcold: działa to w przypadku niektórych ustawień, dla których działa tylko ten typ zapytania.
gmarmstrong
@gmarmstrong: Widzę, że odpowiedź została edytowana z taką uwagą.
Atcold