如何在Vim中取消设置变量?
我有一个插件,它设置了一个全局变量,并在每次加载插件时进行检查,以避免多次加载自身。我想允许重新加载插件(允许重新加载插件),而不改变插件本身。插件只是检查它的变量是否存在(即如何在Vim中取消设置变量?,vim,Vim,我有一个插件,它设置了一个全局变量,并在每次加载插件时进行检查,以避免多次加载自身。我想允许重新加载插件(允许重新加载插件),而不改变插件本身。插件只是检查它的变量是否存在(即存在('g:var\u name'))-是否有办法取消设置所述变量,以便存在()检查返回false p、 我不想改变插件本身,因为我使用的是指向插件的repo。您应该能够:unlet g:var\u name 问题是如果插件中定义的函数不是用函数定义的那么当插件第二次被获取时,你会得到很多错误。该插件也可能正在进行初始设置
存在('g:var\u name')
)-是否有办法取消设置所述变量,以便存在()
检查返回false
p、 我不想改变插件本身,因为我使用的是指向插件的repo。您应该能够
:unlet g:var\u name
问题是如果插件中定义的函数不是用函数定义的代码>那么当插件第二次被获取时,你会得到很多错误。该插件也可能正在进行初始设置,运行两次可能会弄脏它
一般来说,如果插件作者添加了一个已加载的陷阱,那么它可能是有原因的。我找到了,其中有一节关于:
要删除变量,请使用“:unlet”命令。例如:
没错,我这样做是在踏入危险的水域。具体地说,我使用的插件似乎在每次使用加载会话时都会遭到重击。因为他的测试是如何构造的,所以你可以让g:force_reload_mark=1而不是unlet g:loaded_mark
。看起来这个插件的编写考虑到了重新资源化,因为任何颜色方案的改变都会杀死他的插件。他在脚本页面的自述中陈述了这一点。如果定义匿名函数(function dict.fname
),则不要使用函数
您应该只清空dict
(比如让dict={}
)。2.如果您定义了普通函数,那么为了避免在调用插件时出错,您可以使用delfunction
命令。这两个动作都是由vimpluginloader的LoadCommand reload…
和frawor的call frawor#reload(…)
使用的(你需要使用这些框架才能重新加载你的插件)。哎呀,我在vim.org上链接到了错误的标记脚本——我实际使用的脚本没有g:force_reload_Mark
。
:unlet s:count