我正在尝试在vim中设置一个保存,编译和运行当前文件的热键。到目前为止,我已经花了至少一个小时试图让它工作,所以它可能取消了拥有这样一个热键的任何节省时间的好处,但那是我生活中的故事;)
如果我输入:w
然后按回车键,然后按下:!g++ % -o %< && ./%<
然后按回车键,这就有效,并在输出后显示“按回车键或输入命令继续”,这让我看看返回vim之前的输出。我可以通过将此行放在~/.vimrc
:
map <F8> :w <CR> :!g++ % -o %< && ./%<<CR>
当我按下F8时会运行所有命令,但它会立即返回到vim,而不是暂停“按回车或键入命令继续”,所以我不能看到输出。如果我在最后删除了<CR>
,那么我需要在按F8后按Enter键。
任何人都知道vim真的很好,知道我做错了什么,或尝试过类似的东西?
答案 0 :(得分:2)
您的映射适用于我(具有适当的提示; Linux上的终端Vim 7.4.135)。一些评论:
:noremap
;它使映射不受重映射和递归的影响。:!
命令之前的空格导致光标向右移动,因为它在正常模式下被解释。<
字符转移为<lt>
。:make
的使用优于显式触发编译器。埃尔戈:
:nnoremap <F8> :w<Bar>!g++ % -o %<lt> && ./%<lt><CR>