プラグイン変数のデフォルト値を設定する最良の方法は何ですか?
理想的には.vimrc、ユーザーが必要に応じてこれらの値をオーバーライドできるように、ロードされる前にこれらの変数を設定したいと思います。それは可能ですか?
プラグイン変数のデフォルト値を設定する最良の方法は何ですか?
理想的には.vimrc、ユーザーが必要に応じてこれらの値をオーバーライドできるように、ロードされる前にこれらの変数を設定したいと思います。それは可能ですか?
プラグインを書いていますか?
プラグインはユーザーの後に実行される可能性があります~/.vimrc。それ以前は何もできません。
スクリプトを実行する前に何かをすることを忘れて~/.vimrc、スクリプトで条件を使用することができます。
if !exists("g:pluginname_optionname")
let g:pluginname_optionname = default_value
endif
または、自動ロードスクリプト()を使用して、カスタマイズの前に:h autoload次のようなものをユーザーに入力するようにユーザーに依頼することもできます。~/.vimrc
call file_name#function_name()
その関数がすべての初期化を行います。
プラグインは、プラグインのロード時に変数が存在しない場合にのみデフォルト値を設定する必要があります。関数を使用してこれを確認できexists()ます。
たとえば、プラグインスクリプトの上部にあるもの:
if !exists("g:MyPluginVariable")
let g:MyPluginVariable = default_value
endif
これg:MyPluginVariableで、vimrcでが設定されている場合、プラグインによって再定義されることはありません。
グローバルスコープに次のようにget()アクセスできることを利用するアプローチもあります。g:Dictionary
let g:pluginname#optionname = get(g:, 'pluginname#optionname', default_value)
はスコープをキーとしてget() クエリし、そこにキーが見つからない場合は戻ります。ステートメントは、それが持っていたのと同じ値を再割り当てするか、または.g:Dictionarypluginname#optionnamedefault_valueletdefault_value
利点は、プラグインでデフォルト値を持つ多くの変数を使用している場合に短くなることです。