开发Java时,在VIM中使用哪些好用的插件?

27

我喜欢使用Vim,但没有像Eclipse一样的IntelliSense /代码补全功能,这使得它变得非常困难。我知道,我应该能够查看方法签名和所需API的Java文档。我很想这样做,但我希望可以通过指尖轻松访问它,而不必手动浏览源代码树或准备JDK参考。

有哪些插件可以使这更容易?


3
到目前为止,我的努力非常成功。不希望有人说VI不能取代IDE。它可以(除了调试方面)。具体情况可能因人而异。 - Nick Stinemates
2
现在十年过去了,你还是那样工作吗? - Thorbjørn Ravn Andersen
8个回答

22

我曾经使用过eclim一段时间。它相当不错,基本上是将Eclipse作为引擎在后台运行,并提供一个插件,让你可以通过vim使用所有Eclipse的好处。

http://eclim.org/


1
我认为eclim甚至可以让你在vim作为子窗口的情况下运行完整的eclipse。非常令人印象深刻。 - Benj
2
还可以看看vrapper。它是一个轻量级版本,只需在Eclipse上启用vim键绑定。 - Yada
你能解释一下“for a while”这部分吗?我猜你发现它与你现在使用的某些东西相比有一些限制。 - Sridhar Sarnobat

17

不要在Vim中编写Java代码,而是将Vim整合到Java IDE中:

我喜欢Vim,但使用Java IDE是保持理智的唯一方法。一个好的Java IDE将能够:

  • 显示无效的语法或类型错误
  • 显示缺失的JavaDoc
  • 自动管理import语句
  • 突出显示未使用的方法和变量
  • 安全地执行强大的重构操作,例如移动方法或重命名类——(不,搜索和替换并不能胜任,我向你保证)
  • 自动或按需重新格式化你的代码

Vim无法做到以上操作,但你可以在支持这些操作的程序中使用所有的Vim快捷键。


2
我会为jVi背书。开发者仍在继续开发,并乐于接受错误报告和功能请求。 - gotgenes
1
我也用了几年的IdeaVIM。除了在打开IntelliJ一周后撤消历史记录被损坏之外,它表现得非常好。 - a paid nerd
4
为什么Java领域的人都这么反对vim? - Craige
2
@apaidnerd - 看起来你的不满应该是针对Java语言,而不是开发者。无论如何,存在可以在vim中很好地使用Java的工具。JavaImp.vim可以自动管理导入。 - Craige
4
在vim、emacs、Eclipse(以及类似Aptana的变体)、Xcode、Visual Studio和IntelliJ等许多编程语言开发中,从脚本语言到Java,Object-C,C++,#,我可以说,在学习了正确的扩展后,使用vi或emacs使我比以往任何时候都更加高效。 - Chuck
显示剩余3条评论

7
我使用 Eclipse + Vrapper。它启用了我们所熟悉和喜爱的 vi 双模式编辑。 <ESC>
完全免费且轻量级。其目标是在保留不同 Eclipse 文本编辑器的强大功能,如代码生成和重构的同时,具备与 Vim 编辑相似的舒适、易用性、复杂命令以及计数/操作/动作组合等关键特性。
虽然 eclim 是另一种选择,但我认为 eclim 接管了 Eclipse,而 vrapper 没有这样做。

Viable是一款新的适用于Eclipse的Vim插件,我个人认为它在vrapper的基础上有所改进。http://viableplugin.com/ - Leopd
注意:Viable插件自2011年以来没有更新,viableplugin.com网站似乎被链接垃圾邮件发送者所拥有。 - Brent Matzelle

5

看看Vim的JDE插件。它提供Java自动完成和文档查看器等功能。


2
你有实际使用过JDE插件吗?当我尝试使用它时,它似乎有点混乱。考虑到它被下载的次数,它的评分也不是很好。 - Benj
我曾试过一段时间,但日常并不使用。当时看起来还可以。 - Ayman Hourieh
之前用过它,感觉还不错。但是有些小问题,所以我禁用了它并开始使用鼠标。 - Sam Barnum
你是在说这很好还是不好?你似乎两者都在说 :-) - Benj

5
我使用 javacomplete.vim 插件实现 Java 的自动补全。这是一个非常好的脚本:它还在自动补全上方显示方法签名。缺点是速度有点慢,但除此之外,对我来说效果还不错。Eclim 可能更好,但我还没有尝试过,因此无法发表评论。
我还使用 jcommenter.vim 插件生成 javadoc 注释。它可以解析方法签名并自动添加相关的 @param foo 字段等。
对于 API 搜索,我建议在正常模式下覆盖 K 键。它会搜索光标下的关键字的 man 页面,但行为可以通过设置 keywordprg 变量进行覆盖。请参见 this thread 中的示例。

我发现其他脚本也非常有用(不仅限于Java开发):NERDCommenterAutoClosesnipMateAlign


3

同时,IntelliJ是一款更好的编辑器,具有更智能的自动完成、重构和意图支持。我已经使用免费版本使用了几周,对于一个Beta版本来说,它的质量相当不错。(之前的一些Beta版本并不那么好) - Peter Lawrey

3
Vim不是IDE的替代品,而是一种非常特定的附加工具。使用Vim时,您应该只进行小而快速的调整,而主要的开发则在Netbeans/Eclipse/IDEA下进行。
再说一遍,将Vim变成完整的IDE是一个非常糟糕的想法。为什么?它不会那么快。因此也不会那么漂亮。
以下是场景:您已经打开了Eclipse或其他编辑器来编辑当前任务。10分钟后,您必须切换到另一个比较紧急的任务。这个任务是微调maven或ant构建脚本和/或一些部署perl/python/groovy脚本。
重新加载Eclipse以处理新的5分钟任务并切换回来需要多长时间呢?但是如果您是Vim大师,您可以在几秒钟内处理此任务。您可以更改一个文件并在Vim中运行Ant/Mvn。
这就是Vim的威力。无论文件扩展名是java、groovy、c++、makefile、bash、c#等,您都可以在瞬间更改和检查一个文件。

我既同意又不同意,所以不知道该如何投票你的提交。正如你所说,我一直在使用NetBeans和vim,但仅限于调试目的。调试是唯一能让我打开IDE(并且因此总是开着..)的原因,因为即使VI可以很好地完成它,我认为它也无法像Eclipse/NetBeans那样做得好。 - Nick Stinemates
NetBeans 擅长编辑 Maven pom 文件和重构。所有搜索我都在 vim 中进行。 - Mykola Golubyev

0

这将是一场艰苦的战斗。Eclipse 中有关于你的程序的大量知识,我预计你最终会不得不重新实现它们才能满意。

你有什么特别的原因不能决定喜欢 Eclipse 中内置的编辑器吗?


因为它太糟糕了,对于我所做的Java编程来说太过沉重。我也喜欢远程开发,而且必须在所有机器上携带IDE真的不切实际。 - Nick Stinemates
1
根据我的经验,现代Java IDE的便利性可以证明其体积和资源使用。许多人喜欢JetBrains IntelliJ,它刚推出了Community Edition。甚至可能在“ssh -Y…”连接上运行。一个好的起点似乎是VIM JDE- http://www.vim.org/scripts/script.php?script_id=1213。 - Thorbjørn Ravn Andersen
为了贡献我的经验:我有时被迫在工作中远程运行Eclipse。如果有良好的本地连接,可以像Thorbjorn建议的那样使用ssh -XY运行,但是从更远的地方,即外部VPN,这感觉就像戴着拳击手套弹钢琴。然而,使用TightVNC(或其任何类似程序)后,它几乎与本地一样快速,以至于我可以忘记我正在远程操作。 - Carl Smotricz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接