如何在 vim 中运行 make 并在拆分窗口中打开结果?

发布于 2024-11-17 20:42:15 字数 251 浏览 3 评论 0原文

我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我是有多爱你 2024-11-24 20:42:15

如果要编译,编译成功后运行。 (即 !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 |

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文