6

プラグイン変数のデフォルト値を設定する最良の方法は何ですか?

理想的には.vimrc、ユーザーが必要に応じてこれらの値をオーバーライドできるように、ロードされる前にこれらの変数を設定したいと思います。それは可能ですか?

4

3 に答える 3

10

プラグインを書いていますか?

プラグインはユーザーの後に実行される可能性があります~/.vimrc。それ以前は何もできません。

スクリプトを実行する前に何かをすることを忘れて~/.vimrc、スクリプトで条件を使用することができます。

if !exists("g:pluginname_optionname")
  let g:pluginname_optionname = default_value
endif

または、自動ロードスクリプト()を使用して、カスタマイズの前に:h autoload次のようなものをユーザーに入力するようにユーザーに依頼することもできます。~/.vimrc

call file_name#function_name()

その関数がすべての初期化を行います。

于 2013-03-09T10:02:55.063 に答える
3

プラグインは、プラグインのロード時に変数が存在しない場合にのみデフォルト値を設定する必要があります。関数を使用してこれを確認できexists()ます。

たとえば、プラグインスクリプトの上部にあるもの:

if !exists("g:MyPluginVariable")
    let g:MyPluginVariable = default_value
endif

これg:MyPluginVariableで、vimrcでが設定されている場合、プラグインによって再定義されることはありません。

于 2013-03-09T10:02:20.800 に答える
2

グローバルスコープに次のようにget()アクセスできることを利用するアプローチもあります。g:Dictionary

let g:pluginname#optionname = get(g:, 'pluginname#optionname', default_value)

はスコープをキーとしてget() クエリし、そこにキーが見つからない場合は戻ります。ステートメントは、それが持っていたのと同じ値を再割り当てするか、または.g:Dictionarypluginname#optionnamedefault_valueletdefault_value

利点は、プラグインでデフォルト値を持つ多くの変数を使用している場合に短くなることです。

于 2015-09-24T09:16:59.243 に答える