繁体   English   中英

vimrc文件中的vim映射问题,但找不到我设置的映射

[英]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

有两个明显的错误:

  1. noremapb应该是noremap ,没有b

     noremap <silent> <Cx> :GenTocMarked
  2. 最后应该有一个<CR>

     noremap <silent> <Cx> :GenTocMarked<CR>

    映射的右侧是一个宏:由于您按<CR>执行命令:GenTocMarked ,因此它应该存在于 RHS 中。

然后是诊断错误: :map命令及其非递归伙伴:noremap为正常、可视和操作符挂起模式创建映射,但是:imap打印出插入模式映射,所以你不能指望它找到使用:map创建的映射。

然后是语义错误: noremap中的renore (非递归的缩写)的一部分,而不是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM