如何在 vim 中运行 make 并在拆分窗口中打开结果?
我使用 vim 进行编码。当我必须编译当前文件时,当前我使用 :!g++ % && ./a.out
或 :make
。 当我按 Enter 并返回到文件时,显示的错误/输出消失了。我希望错误和输出以侧面垂直分割的方式显示。如果输出流和错误流位于单独的缓冲区中,那就太好了。这怎么能做到呢? 当我再次编译时,错误和输出缓冲区应该更新,并且它不应该创建新的缓冲区。 怎么能做到这一点呢?一些 vim 插件/功能?或单线:P?
I use vim for coding. When I have to compile the current file, Currently I use :!g++ % && ./a.out
or :make
.
The errors/output displayed are gone when I press enter and get back to the file. I wish the errors and output are displayed in a vertical split by the side. It would be nice if output and error streams are in separate buffers. How can this be done?
Errors and Output buffer(s) should be updated when I compile again and it should not create new buffers.
How can do this? some vim pluggin/function? or a oneliner :P?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
oneliner:
参见 http://vimdoc.sourceforge.net/htmldoc/quickfix.html#quickfix-window
oneliner:
See http://vimdoc.sourceforge.net/htmldoc/quickfix.html#quickfix-window
如果要编译,编译成功后运行。 (即
!g++ % && ./a.out
)使用以下行创建 shell 脚本:
g++ $1 -o /tmp/a.out && /tmp/a.out
现在像这样设置 makeprg。
set makeprg=compileNrun.sh\ %
由于
&&
,无法将整个命令直接设置为makeprg。如果直接在makeprg中设置,上面的命令将扩展为,
!g++ file.C -o /tmp/a.out && /tmp/a.out 2>&1 | tee /tmp/errorFile
因此,如果编译失败,编译错误不会被重定向到错误文件;P as
&&
优先于|
If you want compile and run if compile succeeded. (i.e
!g++ % && ./a.out
)Create a shells script with the following line,
g++ $1 -o /tmp/a.out && /tmp/a.out
Now set the makeprg like this.
set makeprg=compileNrun.sh\ %
Cannot set the whole command directly as makeprg because of
&&
.If set in makeprg directly, the above command will be expanded to,
!g++ file.C -o /tmp/a.out && /tmp/a.out 2>&1 | tee /tmp/errorFile
Hence compilation errors wont be redirected to the error file if compilation failed ;P as
&&
takes precedence over|