编译C程序并运行它,我使用“:make”但是如果编译成功,我也想运行已编译的程序。
我写了
au FileType c setlocal makeprg=g++\ %\ \&\&\ ./a.out
在vimrc中的,这是有效的,但是当我的代码中出现一些错误时,我有一个vim错误,因此vim不会将光标放在好的行上。 我收到这个错误:
E40:无法打开错误文件 的/ tmp / vEtUQQ2 / 0
是否有解决方法,修复或其他方法来实现此目标?
答案 0 :(得分:8)
您可以在makefile中创建一个目标来运行程序(比如说'run'):
.PHONY : run
run : $(PROG) # assuming $(PROG) is the name of your program
./$(PROG)
...然后在vim中你会这样做:
:make run
答案 1 :(得分:7)
纯粹的vim有一种方法可以做到这一点,但它有点烦人。
使用QuickFixCmdPost(Autocmd事件)检查':make'运行后是否存在构建错误。 如果没有错误,请运行新编译的程序。
autocmd QuickfixCmdPost make call AfterMakeC()
function! AfterMakeC()
" No any error after make
if len(getqflist()) == 0
!./a.out
endif
" :~)
endfunction
您可能希望将脚本放在编译器插件
中的命名空间下