VIM 禁用插件的插入映射



插件将<leader>is的映射添加到我的插入映射中。我有一些想法,它可以是哪一个。但是没关系,我不想在外部插件中更改任何内容。所以我想禁用这个映射。我试过这个:

imap <leader>is  <nop>

我没有帮忙。

你有什么建议?

顺便说一句,我想问如何在 vimrc 中禁用插件的所有插入映射?

要删除插入模式映射,请使用 :iunmap 命令:

:iunmap <Leader>is

我不知道是否可以进行"批量取消映射",但至少您可以列出所有活动的插入模式映射

:imap

或者,更好的是,与

:verbose imap

它还将告诉您首先定义映射的位置。


编辑:为了澄清,取消映射需要在加载插件完成。为此,请在~/.vim/after/plugin/中创建包含以下内容的文件(请参阅@ZyX的答案):

" myafter.vim: will be executed after plugins have been loaded
iunmap <Leader>is
如果

插入 vimrc 中的命令将在插件定义侵入式映射之前执行,这就是它不起作用的原因。要使其生效,您应该让它在该插件之后运行,这通常是通过将其放入~/.vim/after/plugin/disable_mappings.vim来实现的(任何名称而不是disable_mappings工作)。其次是使用VimEnter事件:

augroup DisableMappings
    autocmd! VimEnter * :inoremap <leader>ic <Nop>
augroup END

.要禁用所有映射,请参阅:h 'paste':h 'pastetoggle',也:h :imapclear(尽管后者将删除映射而不是暂时禁用它们)。


当然,您也可以在我建议使用inoremap … <Nop>的地方使用iunmap。我怎么会忘记这个命令?

最新更新