[英]vim mapping problem in vimrc file but can not find the mapping that I set
我正在使用 vim-markdown-toc 插件(已成功安装)并希望将一些热键重新映射到特定功能。 我将此代码autocmd Filetype markdown noremapb <silent> <Cx> :GenTocMarked
到我的 .vimrc 文件中。 但是当我输入:verbose imap <Cx>
时,它显示找不到映射。
谁能告诉我这有什么问题?
而且我还想问如何将一个热键映射到多个功能?
autocmd Filetype markdown noremapb <silent> <C-x> :GenTocMarked
有两个明显的错误:
noremapb
应该是noremap
,没有b
:
noremap <silent> <Cx> :GenTocMarked
最后应该有一个<CR>
:
noremap <silent> <Cx> :GenTocMarked<CR>
映射的右侧是一个宏:由于您按<CR>
执行命令:GenTocMarked
,因此它应该存在于 RHS 中。
然后是诊断错误: :map
命令及其非递归伙伴:noremap
为正常、可视和操作符挂起模式创建映射,但是:imap
打印出插入模式映射,所以你不能指望它找到使用:map
创建的映射。
然后是语义错误: noremap
中的re
是nore
(非递归的缩写)的一部分,而不是remap
的一部分。 <Cx>
不是映射,因此您不会“重新映射”任何东西。
然后是范围错误: :noremap
为三种模式创建映射,这可能是您不想要的。 你应该更具体:
" normal mode mapping
nnoremap <silent> <C-x> :GenTocMarked<CR>
最后,自动命令滥用错误:已经有一个用于获取文件类型特定配置的内置机制,因此无需在vimrc
中重新发明轮子:
" in after/ftplugin/markdown.vim
nnoremap <buffer> <silent> <C-x> :GenTocMarked<CR>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.