为插件变量设置默认值的最佳方法是什么?
理想情况下,我希望在加载.vimrc
之前设置这些变量,以便用户可以根据需要覆盖这些值。这可能吗?
答案 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}}进行查询,如果找不到该密钥,则会返回Dictionary
。 pluginname#optionname
语句要么重新分配它具有的相同值,要么default_value
。
如果您在插件中使用大量具有默认值的变量,则优势更短。