首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VimL:取消加载插件的功能

VimL:取消加载插件的功能
EN

Stack Overflow用户
提问于 2012-12-07 04:22:16
回答 1查看 103关注 0票数 0

也许题目不太具体。所以让我解释一下:

这是针对this GitHub fork的,针对numbertoggle Vim plugin的。请检查我的叉子的结构,以理解我的意思。

我需要的是一种方法去激活它,在它被加载之后。换句话说,如果调用了该函数,则将其从图表中完全删除。

换句话说,换句话说。如果这个插件被调用了,并且我做了:call NumberToggleOff(),那么它就会禁用它,就像Vim正常工作一样。

实现这一目标的好方法是什么?我尝试了几种方法,但都不起作用。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-07 12:29:18

通常,它可以通过将自动命令包围在一起来完成

代码语言:javascript
复制
augroup NumberToggle
    …
augroup END

并记住映射的{lhs}。要禁用它,您可以执行以下操作

代码语言:javascript
复制
let s:plugin_lhs=exists('g:NumberToggleTrigger') ? g:NumberToggleTrigger : '<C-n>'
let g:numbertoggle={}
function! g:numbertoggle.unload()
    augroup NumberToggle
        autocmd!
    augroup END
    augroup! NumberToggle
    execute 'nunmap' s:plugin_lhs
    delfunction NumberToggle
    delfunction UpdateMode
    delfunction FocusGained
    delfunction FocusLost
    delfunction InsertLeave
    delfunction InsertEnter
    unlet g:numbertoggle
    unlet g:loaded_numbertoggle
    unlet g:insertmode g:focus
    unlet s:plugin_lhs
endfunction
" Then do :call g:numbertoggle.unload()
" Loading is done by resourcing numbertoggle

如果不是使用一堆delfunction调用,而是将所有函数名转换为g:numbertoggle.toggleg:numbertoggle.update、…离开unlet g:numbertoggle就好了。

它完全取消插件的效果,而不仅仅是禁用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13751883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档