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?

Odpowiedzi:


378

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

:set expandtab?

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

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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.