0

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

这是为了这个 GitHub 分支,为了numbertoggle Vim 插件。请检查我的叉子的结构,以理解我的意思。

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

换句话说,换句话说。如果插件被调用,而我这样做:call NumberToggleOff()了,那么它将禁用它并像 Vim 正常运行一样。

什么是实现这一目标的好方法?我尝试了几种方法,但没有一个有效。

谢谢你的帮助!

4

1 回答 1

2

通常它可以通过周围的自动命令来完成

augroup NumberToggle
    …
augroup END

并记住{lhs}映射。要禁用它,然后执行

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.toggle, g:numbertoggle.update, ... 并离开,那会好得多unlet g:numbertoggle

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

于 2012-12-07T04:29:18.303 回答