vim编译并运行热键输出后不会暂停

时间:2014-01-09 20:02:37

标签: vim

我正在尝试在vim中设置一个保存,编译和运行当前文件的热键。到目前为止,我已经花了至少一个小时试图让它工作,所以它可能取消了拥有这样一个热键的任何节省时间的好处,但那是我生活中的故事;)

如果我输入:w然后按回车键,然后按下:!g++ % -o %< && ./%<然后按回车键,这就有效,并在输出后显示“按回车键或输入命令继续”,这让我看看返回vim之前的输出。我可以通过将此行放在~/.vimrc

中将其映射到F8键
map <F8> :w <CR> :!g++ % -o %< && ./%<<CR>

当我按下F8时会运行所有命令,但它会立即返回到vim,而不是暂停“按回车或键入命令继续”,所以我不能看到输出。如果我在最后删除了<CR>,那么我需要在按F8后按Enter键。

任何人都知道vim真的很好,知道我做错了什么,或尝试过类似的东西?

1 个答案:

答案 0 :(得分:2)

您的映射适用于我(具有适当的提示; Linux上的终端Vim 7.4.135)。一些评论:

  • You should use :noremap;它使映射不受重映射和递归的影响。
  • 第二个:!命令之前的空格导致光标向右移动,因为它在正常模式下被解释。
  • 您可以将两个Ex命令合并到一个命令行中。
  • 虽然这不会造成伤害,但您最好将<字符转移为<lt>
  • 正如Peter Rincker已经评论过的那样,:make的使用优于显式触发编译器。

埃尔戈:

:nnoremap <F8> :w<Bar>!g++ % -o %<lt> && ./%<lt><CR>