24

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

b:javascript_fold

а также

g:javascript_conceal

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

2 ответа2

44

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

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

:let g:var_name = 1

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

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

Префикс показывает область действия переменной; from :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 должны добавляться только глобальные переменные, локальные переменные буфера должны использоваться в плагинах файловых типов.

10

Переменные конфигурации не являются опциями, они только "эмулируют" те, что для плагинов Следовательно, вы не используете :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 ; использование каталога after позволяет вам переопределить любые настройки по умолчанию для типов файлов, выполняемые $VIMRUNTIME/ftplugin/{filetype}.vim .)

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

autocmd Filetype javascript let b:javascript_fold = 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .