【问题标题】:Tips for using Vim as a Java IDE? [closed]将 Vim 用作 Java IDE 的技巧? [关闭]
【发布时间】:2008-10-31 11:08:21
【问题描述】:

我沉迷于 Vim,它现在是我编辑文本文件的实际方式。

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

我的一些问题:

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

还有什么我应该知道的(除了“不要这样做!”)吗?

【问题讨论】:

  • 我在工作中广泛使用netbeans,但对于我在家的个人服务器......使用NetBeans 效果不佳,因为我必须在另一台计算机上进行开发然后部署。往返时间太长了。
  • @AdamC Inbound from Google here... 作为一个自认是来自 python 的命令行极客,我认为使用 java 开发环境进行设置的入门障碍是非常 i> 因需要此类程序而提出。我已经必须安装 JVM... 为什么还要进行更多安装才能让你好世界?这只是来自脚本语言的人在第一次学习 java 时的普遍性格。
  • 当我在 VIM 中编辑时。要返回控制台,您只需执行 ctrl+z 即可将 vim 置于后台并将您带回控制台。然后你可以使用 fg 命令让 vim 回到你的前台
  • 你不必 ctrl=
  • 您不必 ctrl+z/fg .. 只需键入 :!command 即可运行“command”。如果你想要一个快速的 shell,输入 :!bash 。然后,如果您退出,则返回 vim 而不是留下悬空的后台作业。您可以使用插件在 vim 窗口中获取 shell。

标签: java vim ide


【解决方案1】:

一些提示:

  • 确保使用 vim(改进了 vi)。 Linux 和某些版本的 UNIX 符号链接 vi 到 vim。
  • 您可以使用eclim 完成代码
  • 或者您可以在 Eclipse 中使用viPlugin 获得 vi 功能
  • vim 的语法高亮非常棒
  • Vim 对编写小宏有很好的支持,比如运行 ant/maven builds

玩得开心:-)

【讨论】:

  • 命令获取有关 java 语法高亮的帮助。 :help java.vim
  • 在 Eclipse 中获取 Vim 功能的另一种方法是 Vrapper。它具有大部分 Vim 键绑定,并且与 viPlugin 不同,它是免费的。
  • 支持跨步、单步执行等的调试器怎么样?
  • Linux... symlink vi to vim 反例:Arch Linux
【解决方案2】:

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

当我遇到太多的编译问题时,我会启动 Eclipse。它让我可以轻松应对这些变化。它使用起来很慢、很残酷,而且不像 Vim 那样好用编辑器(我使用 Vim 已经近十年了,所以它对我来说是第二天性)。我找到了精确编辑——需要修复一个特定的错误,需要重构一些特定的逻辑,或者其他什么……我在 Eclipse 中的编辑效率不如在 Vim 中那样高效。

还有一个提示:

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

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

不管怎样,最重要的是,当我需要添加大量新代码时,Vim 似乎让我放慢了速度,这仅仅是因为我花时间去寻找编译问题和类似的东西。但是,当我需要查找和编辑特定源时,Eclipse 就像一把大锤。我还在等待 Vim 的神奇 IDE。据我所知,有过三种主要的尝试。有一个纯 viml IDE 类型的插件,它增加了很多功能,但似乎无法使用。有eclim,我遇到了很多麻烦。还有一个实际上嵌入了 Vim 的 Eclipse 插件。最后一个似乎最有希望用于真正的 Java EE 工作,但它似乎不能很好地工作或将 Eclipse 的所有功能真正集成到嵌入式 Vim 中。

在处理大型 Java 项目时,从您的 IDE 中通过击键添加缺失的导入、突出显示输入问题的代码等似乎是无价之宝。

【讨论】:

  • 投票给"^wf" 我不知道vim里有这样的东西:)
  • 你能解释更多关于^wf的信息吗?它有什么作用?
  • 如果能够找到文件,它将在新的拆分窗口中打开光标下的java文件/类(不需要文件扩展名.java)。这就是:set path=** 很有帮助的原因。
  • 那么**字面上是两个星号吗?
  • @lijat @​​987654325@ -- 就像其他 vim 帮助一样
【解决方案3】:
  • 如何在不离开 vi 的情况下调用 maven 任务?

    Maven 与任何其他 shell 命令没有什么不同:

    :!mvn

    如果您已经拥有:make 的最喜欢的键映射,则可以:set makeprg=mvn。

  • 我可以获得代码完成吗?

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

    <C-n> 和 <C-p> 不是很好,但非常有用。

  • 语法高亮如何?

    对于一个基于正则表达式的高度器来说已经足够了。

您可能需要考虑用于其他 vim+java 用途的工具,例如代码模板(snippetEmu—默认的 sn-ps 很烂,但可定制性很出色)、搜索用法和进入声明(eclim、grep、ctags)、生成 getter 和 setter(java_getset,或 eclim),自动导入(eclim)。您可能还需要一个 java shell 来进行快速实验(BeanShell,又名bsh)。

【讨论】:

  • 感谢 BeanShell 提示,我不知道那个工具
【解决方案4】:

我刚刚上传了this Vim plugin,用于开发Java Maven项目。

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

https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

      我知道这已经是几年后的事了,但这里有一些有趣的插件。我还没有尝试过这两种方法,所以 YMMV。

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

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

      编辑:哦,顺便说一句,我已经尝试过 eclim 关闭和打开,但我喜欢 vim 的原因是它的轻盈。即使在无头模式下执行 eclipse 对我来说也太费脑筋了。

      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 的快速修复缓冲区(:cnext、:clist: cprev 等)。

      • 为了在课堂上跳来跳去,我使用ctrl-p。很美丽。 用它。在跳转文件方面比 eclipse 更快。

      • 对于跳转方法,我使用带有丰富 c-tags 的 tagsearch。 使用 ctrl-] 跳转到方法声明。返回使用 Ctrl-o。效果不如 eclipse,但也够用了。

      • 我使用supertab 来完成代码。 Javacomplete 很慢,所以我坚持使用omni-complete。同样,它不如 Eclipse 准确,但它速度快,对我来说足够好。

      【讨论】:

        【解决方案7】:

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

        您将拥有一切(通过一些插件)。

        顺便说一句,snippetsEmu 是一个用有用的 sn-ps 编码的好工具(就像在 TextMate 中一样)。您可以使用(或修改)预制包或自己制作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-10
          • 2019-01-09
          • 2011-05-25
          相关资源
          最近更新 更多