【发布时间】:2014-01-09 20:02:36
【问题描述】:
我正在尝试在 vim 中设置一个热键来保存、编译和运行当前文件。到目前为止,我至少花了一个小时试图让它工作,所以它可能抵消了拥有这样一个热键的任何节省时间的好处,但这就是我生活的故事;)
如果我输入:w 并按回车键,然后输入:!g++ % -o %< && ./%< 并按回车键,则此方法有效,并且在输出后显示“按回车键或键入命令继续”,这让我在返回之前查看输出到 vim。我应该可以通过将此行放入~/.vimrc 来将其映射到 F8 键:
map <F8> :w <CR> :!g++ % -o %< && ./%<<CR>
当我按 F8 时它会运行所有命令,但它会在最后立即返回 vim,而不是用 “按 Enter 或键入命令继续”暂停,所以我不能查看输出。如果我删除了最后的<CR>,那么我需要在按F8后按回车。
有人非常了解 vim 并且知道我做错了什么,或者尝试过类似的方法吗?
【问题讨论】:
-
不是您问题的答案,但我建议您查看
:h :make。如果'makeprg'设置正确,:make命令将编译/制作您的项目并在quickfix列表中填充错误。您可以使用:cnext和:cprevious在列表中移动或使用:copen在窗口中打开快速修复列表。至于获取程序的输出可能是这样的::nnoremap <f8> :exe 'new +r!'.expand('%<')<bar>0d_
标签: vim