Vim では、プレフィックス (b:、g:) で始まる設定/コマンドは何ですか?

Vim では、プレフィックス (b:、g:) で始まる設定/コマンドは何ですか?

インストールしましたこのプラグインVundle を使用していて、次のような設定 (README では変数と呼んでいます) があることに気付きました。

b:javascript_fold

そして

g:javascript_conceal

README には、「これらを に追加して、.vimrc機能を有効/無効にすることができます」と書かれていますが、 経由で設定する方法がよくわかりません。これらの変数はや 経由:では利用できず、コマンドや関数でもありません。これらを設定/検査するにはどうすればよいですか?setecho

答え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

関連情報