Получить текущее значение параметра в Vim

274

Есть ли простой способ узнать текущее значение указанного параметра Vim? Если я хочу узнать текущее значение, скажем tabstop, я могу запустить:

:set tabstop

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

:set expandtab

будет на самом деле включить expandtab. Я просто хочу узнать, включен он или нет.

Этот вид делает то, что я хочу:

:echo &l:expandtab

но это кажется довольно многословным. Есть ли более быстрый способ?

nelstrom
источник

Ответы:

378

Добавить ? Отметьте после имени параметра, и он покажет значение

:set expandtab?
JaredPar
источник
15
Обратите внимание, что set <...>?синтаксис будет работать для «настроек», которые являются опциями , но не для «настроек», которые являются переменными . Так, например, чтобы узнать, каков текущий режим подсветки синтаксиса (кодируется в переменной, а не в опции), вам нужно сделать это echo b:current_syntax.
Maxy-B
16
Если вы также хотите увидеть, откуда была установлена ​​опция, используйте verbose. Для этого примера :verbose set expandtab.
Мкобит
1
Как увидеть текущее значение таких настроек, как behave? Я пытался behave?и set behave?. К сожалению, они не работают.
jdhao
38

В качестве альтернативы, &символ может использоваться для обозначения «опция» - например,

let x = &expandtab
echo &expandtab
cdyson37
источник
Есть ли возможность получить значение элемента списка? (например, пространство списков)
816-8055
Я полагаю, что listchars - это обычная строка, а не список, хотя, думаю, вы могли бы сделать что-то вродеsplit(&listchars, ',')
cdyson37
9

Если вы не помните, какую информацию вы хотите проверить,

Вы можете проверить все настройки, используя

:set all

и все настройки будут перечислены.

徐新晨
источник
4

Есть также дополнительные настройки vim, которые также могут отображаться, такие как:

:highlight

Полный список см. По адресу : http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Изменить: Есть некоторое недопонимание моего ответа. Это не работает для любой команды. Но это работает для всех команд, перечисленных в URL выше.

wisbucky
источник
Это не работает. Я хотел проверить, включен ли autowrite. :set autowrite?делает работу
Atcold
@Atcold: это работает для некоторых настроек, для которых будет работать только этот тип запроса.
gmarmstrong
@gmarmstrong: я вижу, что ответ был отредактирован с таким замечанием.
Atcold