vimMap问题在vimrc文件中,但找不到我设置的Map

blmhpbnm  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(197)

我正在使用vim-markdown-toc插件(成功安装),并希望重新Map一些热键到特定的功能。我导出此代码autocmd Filetype markdown noremapb <silent> <C-x> :GenTocMarked到我的。vimrc文件。但当我键入:verbose imap <C-x>,它显示找不到Map。
谁能告诉我这有什么问题吗?
我还想问一下如何将一个热键Map为多个功能?

xkrw2x1b

xkrw2x1b1#

autocmd Filetype markdown noremapb <silent> <C-x> :GenTocMarked

有两个明显的错误:

  1. noremapb应该是noremap,而不是b
noremap <silent> <C-x> :GenTocMarked

1.结尾处应该有一个<CR>

noremap <silent> <C-x> :GenTocMarked<CR>

Map的右侧是一个宏:因为您按<CR>执行命令:GenTocMarked,所以它应该出现在RHS中。
然后是诊断错误::map命令及其非递归伙伴:noremap为正常、可视和操作员挂起模式创建Map,但:imap打印出 insert mode Map,因此您不能指望它真的找到使用:map创建的Map。
然后是语义上的错误:noremap中的renore(非递归的缩写)的一部分,而不是remap的一部分。<C-x>不是Map,因此您没有“重新Map”任何内容。
然后是范围界定错误::noremap创建了三种模式的Map,这可能是您不希望看到的。您应该更具体一些:

" normal mode mapping
nnoremap <silent> <C-x> :GenTocMarked<CR>

最后是自动命令滥用错误:已经有一个内置的机制用于获取特定于文件类型的配置,因此不需要在vimrc中重新发明轮子:

" in after/ftplugin/markdown.vim
nnoremap <buffer> <silent> <C-x> :GenTocMarked<CR>

相关问题