vim:在哪里放置插件变量的默认值?

时间:2013-03-09 09:33:37

标签: variables vim default vim-plugin

为插件变量设置默认值的最佳方法是什么?

理想情况下,我希望在加载.vimrc之前设置这些变量,以便用户可以根据需要覆盖这些值。这可能吗?

3 个答案:

答案 0 :(得分:8)

你在写插件吗?

您的插件可能会在您的用户~/.vimrc之后执行:在此之前您无法执行任何操作。

你可以忘记在执行~/.vimrc之前做任何事情并在你的脚本中使用条件:

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

或者您可以使用自动加载脚本(:h autoload)并要求您的用户在进行任何自定义之前在~/.vimrc中添加以下内容:

call file_name#function_name()

使用该函数执行所有初始化操作。

答案 1 :(得分:3)

如果加载插件时变量不存在,您的插件应该只设置默认值。您可以使用exists()功能进行检查。

例如,在插件脚本的顶部:

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

现在,如果在vimrc中设置了g:MyPluginVariable,则插件不会重新定义它。

答案 2 :(得分:2)

还有alert(navigator.appName); alert(navigator.appCodeName); alert(navigator.platform); 方法,利用您可以get()访问全局范围g:

Dictionary

let g:pluginname#optionname = get(g:, 'pluginname#optionname', default_value) get()范围作为g:的{​​{1}}进行查询,如果找不到该密钥,则会返回Dictionarypluginname#optionname语句要么重新分配它具有的相同值,要么default_value

如果您在插件中使用大量具有默认值的变量,则优势更短。