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