Получить текущее значение параметра в 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.
Мкобит

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: я вижу, что ответ был отредактирован с таким замечанием.
Atcold
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.