如何在当前gvim窗口中显示代码输出?

时间:2016-05-04 01:36:08

标签: vim

我(慢慢地)教自己如何编程,并且我使用gVim作为我的文本编辑器。所以,我有一个问题,我想知道gVim是否有这个功能。所以,假设我正在用Java编写Hello World。

我可以用vim编写程序,点击esc,然后键入(使用我的模式匹配技能):

:!javac %

(这将打开一个vimrun窗口,编译代码并列出任何错误)

然后:

:!java hello (or whatever the class is named)

然后会弹出一个新窗口并显示代码的输出。所以我想要做的是显示任何编译错误,然后显示输出,当前vim窗口中的 ,而不打开新窗口。所以我希望,如果可能的话,在蓝色波浪形中显示代码(缺乏对正确术语的了解)。经过广泛的谷歌搜索,我能找到最接近我想要的是

:read !java hello

并将输出粘贴到代码下方。但这不是我想要的相当。那么有可能显示任何编译错误和代码输出,特别是在我喜欢的地方吗?

再次感谢

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用Apache Ant(Java构建工具,Java相当于make)。来自here

  

在.vimrc中添加以下行:

autocmd BufRead *.java set efm=%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%#
autocmd BufRead set makeprg=ant\ -find\ build.xml

然后为您的项目创建一个build.xml文件,然后您可以:make(或:make run或任何其他目标)在相应的目标上运行Ant。如何构建build.xml有点超出了问题的范围,但您可以按照Ant Hello World tutorial,这应该足以让您入门。

:make命令将执行make工具(在本例中为Ant),并将输出放入Vim中的特殊窗口。在编译器输出的情况下,您也可以在一行上按Enter键以跳转到相应的代码行。 (不确定,我不记得用Java做过)。

另一种方法是使用ConqueShell插件,它允许您在Vim窗口中运行终端程序并与之交互。