vim 在 .vimrc 中执行映射命令后不会暂停

vim does not pause after executing mapped command in .vimrc

我正在映射 .vimrc 中的 F8 键,以便它构建 + 执行 .cpp 文件。我使用的命令是

map <F8> :w <CR> :!g++ -std=c++11 % -o %< && ./%< <CR> 

问题是在我按F8后,输出出现了,但是vim在显示"press ENTER to continue"后没有等待回车(所以基本上程序的输出短暂出现然后立即消失)。如果我从上面删除 <CR>,那么我必须在按 F8 后手动按 ENTER。有没有办法让vim在执行完上面的映射命令后等待按下回车键?

您的映射中 <CR> 之后似乎有一个 尾随 space。这将确认 hit-enter 提示。


您可以使用像我的 ShowTrailingWhitespace plugin to detect and DeleteTrailingWhitespace plugin 这样的插件来(自动)删除尾随的白色 space。 (插件页面有指向其他插件的链接。)


PS: You should use :noremap;它使映射不受重新映射和递归的影响。