VIM映射正常模式钥匙序列

VIM映射正常模式钥匙序列,vim,Vim,我能跑 :执行“norm!mqI/\`q” 但是当我尝试在.vimrc文件中进行映射时 autocmd文件类型cpp nnoremap-c:执行“norm!mqI/\`q” 我得到以下错误: E114:缺少引号:“norm!mqI!”//\ E15:无效表达式:“norm!mqI//\ 问题来自\相反,您可以使用\e当前面有\时,您确实可以在双引号字符串中使用特殊的:help键表示法,如下所示: :execute "norm! mqI//\<esc>`q" autocmd与ft

我能跑

:执行“norm!mqI/\`q”
但是当我尝试在
.vimrc
文件中进行映射时

autocmd文件类型cpp nnoremap-c:执行“norm!mqI/\`q”
我得到以下错误:

E114:缺少引号:“norm!mqI!”//\
E15:无效表达式:“norm!mqI//\

问题来自
\
相反,您可以使用
\e
前面有
\
时,您确实可以在双引号字符串中使用特殊的
:help键表示法,如下所示:

:execute "norm! mqI//\<esc>`q"
autocmd与ftplugin 我建议将映射(以及任何其他与C++相关的设置)放入
~/.vim/after/ftplugin/cpp.vim
中,而不是定义大量
:autocmd文件类型cpp
;这要求您在
上有
:文件类型插件

评论插件 看起来您正在构建一个映射以注释掉行。请注意,有几个commenter插件可以很好地做到这一点,这些插件是通用的(通常是可扩展的),因此它们适用于任何文件类型:


非常感谢!对vim来说非常陌生,所以我正在着手做一些事情来开始,但肯定会检查那些插件。如果vim解释双引号中的
\
以中止命令行,为什么会执行不完整的execute命令?如果是这样的话,什么也不应该发生。
nnoremap -c :execute "norm! mqI//\<lt>esc>`q"
nnoremap -c mqI//<esc>`q