Отримайте поточне значення налаштування у Vim


274

Чи є простий спосіб дізнатися поточне значення вказаного параметра Vim? Якщо я хочу знати поточне значення, скажімо tabstop, я можу запустити:

:set tabstop

не передаючи аргументу, і Vim підкаже мені поточне значення. Це добре для багатьох налаштувань, але це не добре для тих, які є правдивими чи хибними. Наприклад, якщо я хочу дізнатись поточне значення expandtab, запустіть:

:set expandtab

фактично включить expandtab. Я просто хочу з’ясувати, включено чи ні.

Цей вид робить те, що я хочу:

:echo &l:expandtab

але це здається досить багатослівним. Чи є швидший шлях?

Відповіді:


378

Додати? позначте після назви параметра, і воно покаже значення

:set expandtab?

15
Зауважте, що set <...>?синтаксис буде працювати для "параметрів", які є параметрами , але не для "параметрів", що є змінними . Так, наприклад, щоб дізнатися, що таке поточний режим виділення синтаксису (закодований у змінній, а не опція), вам потрібно зробити echo b:current_syntax.
Maxy-B

16
Якщо ви також хочете побачити, звідки була встановлена ​​опція, використовуйте verbose. Для цього прикладу :verbose set expandtab.
mkobit

1
Як бачити поточне значення таких налаштувань, як behave? Я спробував behave?і set behave?. На жаль, вони не працюють.
jdhao

38

Альтернативно, &символ може бути використаний для позначення "варіант" - наприклад

let x = &expandtab
echo &expandtab

Чи також є можливість отримати значення елемента списку? (наприклад, простір списків)
816-8055

Я вважаю, що listchars - це звичайний рядок, а не список, хоча, мабуть, ви могли б зробити щось на кшталтsplit(&listchars, ',')
cdyson37

9

Якщо ви не пам’ятаєте, яку власність ви хочете перевірити,

ви можете перевірити всі налаштування за допомогою

:set all

і всі налаштування будуть перелічені.


4

Є також додаткові параметри vim, які також можуть відображатися, такі як:

:highlight

Повний список див. На веб-сторінці: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Редагувати: Існує деяке нерозуміння моєї відповіді. Це не працює для жодної команди. Але це працює для всіх команд, перелічених у вказаній вище URL-адресі.


Це не працює. Я хотів перевірити, чи autowriteувімкнено. :set autowrite?виконує роботу.
Atcold

@Atcold: це працює для деяких налаштувань, для яких працюватиме лише цей тип запиту.
gmarmstrong

@gmarmstrong: Я бачу, що відповідь було відредаговано з таким зауваженням.
Отримано
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.