如何使用Vim / Emacs提高工作效率

时间:2011-11-03 20:24:35

标签: python ruby linux vim emacs

过去3年或更长时间以来,我一直是Eclipse用户。我在其中进行Java EE(和Spring)开发,到目前为止,我完成了90%的任务而无需触摸鼠标。通常我的Eclipse设置如下:

  • Subclipse(或者我使用命令行)
  • m2clipse(Maven Eclipse插件)
  • Data Source Explorer(处理SQL)

我做的典型Eclipse活动(并希望将其传输到Vim / Emacs)是(这适用于多模块/多项目/多文件夹源代码):

  • 重构(在整个“开放项目”中重命名方法)
  • 跳转到课程实施
  • 搜索特定类或方法的所有用法
  • 通过maven pom.xml
  • 更新依赖项(第三方JAR)
  • 跳转到第三方库实现(maven可以下载source.jar,如果本地存储库没有它,eclipse将带我到实际的Java代码,比如说,Hibernate实体管理器实现)。
  • 编写并运行unit-test

以上所有活动都不需要我使用鼠标。有一些活动,我需要使用一些鼠标,如全局搜索文件

最近我一直想尝试使用VM进行开发。这里的想法是创建一个准系统虚拟机(假设使用Ubuntu服务器)并在那里开始编码或使用Putty / SSH。

我有一台MacBook Pro 13“,这将有利于使用VIM / Emacs或任何轻量级编辑器。

有两个主要目标:

  • 流动性(如旅行和编码)
  • VM作为开发环境

我想使用的工具如下:

  • 的Linux
  • Ruby,Python,PHP(有时甚至可能是Java,但绝对不是Microsoft .NET)
  • 任何RDBMS
  • 任何构建/依赖系统
  • 单元测试框架

你会推荐什么:VIM? Emacs的?其他?其他工具怎么样? Gnu Screen,ctags等

帮助我建立我的梦想环境:轻量级,高效,易于复制:)

谢谢!

5 个答案:

答案 0 :(得分:5)

如果你问一个涉及“vim OR emacs”的问题,你将永远得不到有用的答案。这是一个宗教问题,没有正确的答案!那就是说,你应该清楚地使用Vim! ;-) 但严重的是:Vim更轻量级,因此它可能更适合您描述的场景。 Vim可以用不同的语言编写脚本,您可以在www.vim.org找到许多有用的脚本。 Emacs“更重”,但Lisp是一种非常强大的脚本语言。因此,Emacs不仅仅是一个文本编辑器,它更像是一个通用工具。 IDE功能(如项目管理)是我在Vim中不时缺少的。有一些脚本可以做到这一点,但我不喜欢它们。如果你需要,我会选择Emacs。

答案 1 :(得分:3)

我是一名Emacs人(仅使用vi编辑/ etc下的配置文件)。我认为,对于Emacs,您应该每天最多启动它(与vim完全不同),您应该在.emacs文件中对其进行配置。例如,我使用F12键进行编译,(global-set-key [f12] 'recompile)中有.emacs

答案 2 :(得分:2)

我是vim家伙,使用它进行Perl脚本编写大约6年 - 并且对它仍感到满意 - 所以使用它来编写你说的任何脚本也应该很容易&在vim中很有趣。一旦开始学习vim - 你肯定非常喜欢它,因为它有很多功能!

我想强调几个vim插件,可以给你一个IDE的感觉! (但不能使它成为真正的IDE!)

我相信vim绝对不需要鼠标!

你可以在vim tips and tricks系列文章中找到其他一些功能(其中一些是由我撰写的。)

答案 3 :(得分:1)

对于Java开发,Eclipse有很多功能,你会错过Emacs或VIM。但是,there is a project可以从其他编辑器访问这些功能。您可能会发现弥补缺失的功能很有用。

顺便说一下,如果你接触其他具有Eclipse心态的编辑,那么几乎可以肯定你会感到失望,因为这些编辑器都建立在不同的哲学基础之上。他们的优势不仅仅是Eclipse的优势。

答案 4 :(得分:1)

这些文本编辑器中的任何一个都有学习曲线。话虽如此,我已成功使用emacs执行以下与您提出的问题相符的任务:

  1. 编写PL / SQL并在编辑器中的oracle DB上执行它。
  2. 编写,编译,运行java。
  3. 编辑pom文件。
  4. 在org模式下保持一个非常好的TODO列表。
  5. 你可以在emacs中启动一个shell,而这个功能单独完成了你所要求的(SVN,make / ant / mvn / etc)。

    如果您正在跳进其中一个编辑器并希望看到日食和工作室功能,例如绿色junit栏,我不确定它们是否存在。 Eclipse的重构工具也很好用,我不知道在emacs中有什么可能。虽然有了emacs,我发现有人通常写了一些扩展来做我想要的,你只需要能够找到它并学习如何使用它。我充其量只是emacs新手,但在缩小规模的项目中,我发现它非常高效,而且我不必把手放在键盘上。

    免责声明(java / ee / Spring eclipse开发人员在白天与lua混淆和使用emacs的爱情框架在晚上)