将Vim用作Java IDE的提示?

时间:2008-10-31 11:08:21

标签: java vim ide

我沉迷于Vim,现在是我编辑文本文件的事实上的方法。

因为它主要是一个文本编辑器而不是IDE,有没有人让我在开发Java应用程序时更容易?

我有些问题:

  • 如何在不离开vi的情况下调用maven任务?
  • 我可以完成代码吗?
  • 语法高亮怎么样?

我应该知道的其他事情(除了“不要做!”之外)?

7 个答案:

答案 0 :(得分:74)

一些提示:

  • 确保使用vim(vi改进版)。 Linux和某些版本的UNIX符号链接vi到vim。
  • 您可以使用eclim
  • 获取代码
  • 或者您可以使用viPlugin
  • 在Eclipse中获得vi功能
  • 使用vim
  • 语法突出显示很棒
  • Vim非常支持编写像运行ant / maven版本
  • 这样的小宏

玩得开心: - )

答案 1 :(得分:30)

我多年来一直是Vim用户。我开始发现自己偶尔启动Eclipse(使用vi插件,我不得不说,它有各种各样的问题)。主要原因是Java构建需要相当长的时间......而且随着像maven这样的高度组件化构建框架的加入,它们变得越来越慢。因此,验证您的更改往往需要相当长的时间,这对我来说似乎经常会导致堆积一堆我必须稍后解决的编译问题,并且通过提交消息进行过滤需要一段时间。

当我的编译问题队列太大时,我会启动Eclipse。它让我可以对变化进行蛋糕制作。它使用缓慢,残酷,而且与Vim的编辑差不多(我已经使用Vim近十年了,所以这是我的第二天性)。我找到了精确编辑 - 需要修复一个特定的bug,需要重构一些特定的逻辑或其他东西......我在Eclipse中编辑时效率不如Vim。

也是一个提示:

:set path=**
:chdir your/project/root

这使得类名上的^wf成为导航大型项目的一个非常好的功能。

所以,无论如何,当我需要添加大量新代码时,Vim似乎只是因为花时间追逐编译问题和类似的东西而让我失望。但是,当我需要查找和编辑特定来源时,Eclipse感觉就像一把大锤。我还在等待Vim神奇的IDE。我知道有三次重大尝试。有一个纯viml IDE类型的插件,它增加了许多功能,但似乎无法使用。有eclim,我遇到了很多麻烦。还有一个Eclipse插件实际上嵌入了Vim。对于真正严肃的Java EE工作来说,最后一个似乎是最有希望的,但它似乎没有很好地工作或者真正将Eclipse的所有功能与嵌入式Vim集成。

在处理大型Java项目时,使用键击添加缺少的导入,键入问题的hilight代码等等,似乎对您的IDE来说是非常宝贵的。

答案 2 :(得分:22)

  • 如何在不离开vi的情况下调用maven任务?

    Maven与任何其他shell命令没什么区别:

    :!mvn

    如果您已经拥有:set makeprg=mvn的收藏键映射,则可以:make

  • 我可以完成代码吗?

    是的,eclim很棒,是vim编辑效率与Eclipse Java语言特定意识之间的桥梁。

    <C-n><C-p>并不是那么好,但非常有帮助。

  • 语法突出显示如何?

    对于基于正则表达式的高级游戏来说,还不够好。

你可能想要考虑其他vim + java目的的工具,比如代码模板(snippetEmu - 默认片段很糟糕,但可定制性闪耀),搜索用法和去声明(eclim,grep,ctags),生成getter和setter(java_getset或eclim),自动导入(eclim)。您可能还需要一个用于快速实验的Java shell(BeanShell,a.k.a。bsh)。

答案 3 :(得分:9)

我刚刚上传了this Vim plugin来开发Java Maven项目。

如果您还没有设置突出显示,请不要忘记:

enter image description here https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

答案 4 :(得分:8)

我发现以下摘要非常有用:http://www.techrepublic.com/article/configure-vi-for-java-application-development/5054618。描述:make是针对ant而不是maven,但另有一个很好的总结。

答案 5 :(得分:8)

我知道这是几年之后但是这里有一些有趣的插件。我还没有尝试过这些YMMV。

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

编辑:哦,顺便说一下,我已经尝试过eclim,但我喜欢vim的原因是它的轻盈。即使在无头模式下执行日食对我来说也是太多精神上的提升。

EDIT2:我最近一直在使用playframework,这也可能适用于maven版本:

  • 对于编译,您可以配置VIM的make来运行maven或我的 例如,运行构建脚本,将其发送到文件。

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#
    

“play_compile”只是一个编译脚本。它使用SBT,所以Maven应该在这里工作得很好。即使是直接的javac也能奏效。这样,您可以使用VIM的quickfix缓冲区(:cnext,:clist:cprev等)。

  • 为了跳过课程,我使用ctrl-p。很美丽。 用它。跳过文件比禁食更快。

  • 为了跳转方法,我使用带有旺盛c-tag的tagsearch。 使用ctrl-]跳转到方法声明。回去使用 按Ctrl-O。不像日食那样好,但效果还不错。

  • 我使用supertab代码完成。 Javacomplete很慢,所以我坚持使用omni-complete。再次,不像日食那么准确,但它的速度快,对我来说也足够好。

答案 6 :(得分:5)

使用vim。 ^ - ^(准确地说是gVim)

你会拥有它(有一些插件)。

顺便说一句,snippetsEmu是一个很好的工具,可以用有用的片段进行编码(比如TextMate)。您可以使用(或修改)预先制作的包裹或制作自己的包裹。