Какие настройки/команды в Vim начинаются с префикса (b:, g:)?

Какие настройки/команды в Vim начинаются с префикса (b:, g:)?

Я установилэтот плагинс Vundle и заметил, что у него есть некоторые настройки (в README они называются переменными), например:

b:javascript_fold

и

g:javascript_conceal

В README говорится, что я "могу добавить их в свой, .vimrcчтобы включить/отключить их функции". Но я не уверен, как установить их через :. Эти переменные недоступны через setили echo, и они не являются командами или функциями. Как я могу установить/проверить их?

решение1

Это внутренние переменные.

Вы создаете и изменяете их с помощью :letкоманды:

:let g:var_name = 1

Вы уничтожаете их с помощью :unlet.

Вы проверяете их с помощью :echo.

Префикс показывает область действия переменной; от :help internal-variables:

buffer-variable    b:    Local to the current buffer.
window-variable    w:    Local to the current window.
tabpage-variable   t:    Local to the current tab page.
global-variable    g:    Global.
local-variable     l:    Local to a function.
script-variable    s:    Local to a |:source|'ed Vim script.
function-argument  a:    Function argument (only inside a function).
vim-variable       v:    Global, predefined by Vim.

Добавление такого рода переменной к вашему ~/.vimrcкоду выглядит следующим образом:

let g:var_name = 1

Обычно в ваш файл добавляются только глобальные переменные ~/.vimrc, а в плагинах типов файлов используются локальные переменные буфера.

решение2

Переменные конфигурации не являются опциями, они только "эмулируют" те, что для плагинов. Поэтому вы не используете :set, но :let:echoдля перечисления их текущего значения).

Символ перед переменной определяет ее область действия. g:означает глобальный; обычно его нужно устанавливатьдоплагин загружается, т.е. путем размещения

let g:javascript_conceal = 1

в свой ~/.vimrc(и перезапустив Vim).

Поскольку некоторые конфигурации применяются только к определеннымтипы файлов, они используют b:префикс. Установка их ~/.vimrcпросто применит их к первому открытому буферу, а это не то, что вам нужно. Вместо этого вам нужно подключиться копределение типа файламеханизм.

Если вы хотите включить опцию конфигурации только для определенных типов файлов, используйте :let b:var = valueвместо этого и поместите соответствующие команды в ~/.vim/after/ftplugin/{filetype}.vim, где {filetype}— фактический тип файла (например javascript, ). (Для этого требуется, чтобы у вас было :filetype plugin on; использованиепослекаталог позволяет вам переопределить любые настройки типа файла по умолчанию, заданные $VIMRUNTIME/ftplugin/{filetype}.vim.)

В качестве альтернативы вы можете определить :autocmd FileType {filetype} setlocal option=valueнепосредственно в вашем ~/.vimrc, но это может стать громоздким, если у вас много настроек.

autocmd Filetype javascript let b:javascript_fold = 1

Связанный контент