插件为我的插入映射添加了映射<leader>is.我有一些想法,它可以是一个.但是我不想改变外国插件中的任何东西.所以我想禁用这个映射.我试过这个:
imap <leader>is <nop>
Run Code Online (Sandbox Code Playgroud)
我没有帮忙.
你有什么建议吗?
顺便说一句,我想问一下如何在vimrc中禁用所有插件的插件映射?
glt*_*lts 11
要删除插入模式映射,请使用以下:iunmap命令:
:iunmap <Leader>is
Run Code Online (Sandbox Code Playgroud)
我不知道是否可以进行"批量取消映射",但至少可以列出所有活动的插入模式映射
:imap
Run Code Online (Sandbox Code Playgroud)
或者,甚至更好
:verbose imap
Run Code Online (Sandbox Code Playgroud)
这也将告诉你首先定义了映射的位置.
编辑:为了澄清,需要在加载插件后进行取消映射.为此,请创建一个包含以下内容的文件~/.vim/after/plugin/(请参阅@ ZyX的答案):
" myafter.vim: will be executed after plugins have been loaded
iunmap <Leader>is
Run Code Online (Sandbox Code Playgroud)
如果插入vimrc中的命令在插件定义侵入式映射之前执行,这就是它无效的原因.为了使它有效,你应该让它在该插件之后运行,这通常是通过将其放入~/.vim/after/plugin/disable_mappings.vim(任何名称而不是disable_mappings工作)来实现的.第二是使用VimEnter事件:
augroup DisableMappings
autocmd! VimEnter * :inoremap <leader>ic <Nop>
augroup END
Run Code Online (Sandbox Code Playgroud)
.要禁用所有映射看到:h 'paste'和:h 'pastetoggle'也:h :imapclear(尽管后者将删除禁用它们映射,而不是暂时的).
当然,您也可以使用iunmap我建议使用的地方inoremap … <Nop>.我是怎么忘记这个命令的?
| 归档时间: |
|
| 查看次数: |
1412 次 |
| 最近记录: |