У Vim, які налаштування / команди починаються з префікса (b :, g :)?


23

Я встановив цей плагін з Vundle і помітив, що в ньому є деякі налаштування (README називає їх змінними), наприклад:

b:javascript_fold

і

g:javascript_conceal

README говорить, що я можу додати їх до вашого .vimrc Щоб увімкнути / вимкнути їх функції. "Але я не впевнений, як їх встановити :. Ці змінні недоступні set або echoвони також не є командами або функціями. Як я можу встановити / перевірити їх?

Відповіді:


42

Це внутрішні змінні.

Ви створюєте та змінюєте їх за допомогою :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, буфери-локальних змінних повинні бути використані в filetype плагінів.


2
Для повноти: без префікса: У функції: локальна функції; інакше: глобальний
Tom Hale

9

Змінні конфігурації не є опціями, вони лише "емулюють" для плагінів. Тому ви не використовуєте :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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.