提升 emacs 生产力的十大最佳插件
================================================================================

一年前的这个时候，我想要寻找[将 Vim 打造成一个成熟的全功能的 IDE][1] 的最好插件。有趣的是，那篇文章的很多评论提到了 Emacs 已经大部分有了这些内置插件，已经是一个很棒的 IDE 了。尽管我对 Emacs 的难以置信的多样化表示赞同，它依旧不是一个可以开箱即用的高级编辑器。还好，其庞大的插件库可以解决这个问题。但在过多的选择中，有时很难弄清该如何入手。因此，现在让我试着收集一个不可或缺的插件的简短列表，来提升你使用 Emacs 时的工作效率。 虽然我主要侧重于与编程相关的生产力提升，但是这些插件对所有人或不同用途都是有用的。

### 1. Ido-mode ###

![](https://c2.staticflickr.com/6/5718/23311895573_c1fb34337c_c.jpg)

Ido 或许是对新手最有用的一个插件，Ido 的意思是交互式工作（interactively do）。它取代了大部分的用花哨字符匹配菜单的枯燥提示。好比说，它用列出了当前目录所有文件的列表来取代了常规的打开文件提示符。输入一些字符，Ido  将尝试匹配最合适的文件。它通过可视化让你的操作变得更容易，这也是一个快速遍历所有文件都有相同前缀的文件夹的方法。

### 2. Smex ###

![](https://c2.staticflickr.com/2/1517/23310442314_2a22a60c34_c.jpg)

它不算最著名的一个、但却是一个替代 Ido-mode 的好选择：Smex 可以优雅的替代普通的`M-x`提示符，灵感大部分来自于 Ido-mode。它也给调用`M-x`后输入的命令带来了同样的交互搜索能力。它简单而有效，是一个为常用操作提升效率的最好方法。
  
### 3. Auto Complete ###

![](https://c2.staticflickr.com/6/5794/23643004900_3042f77952_c.jpg)

知道这个插件的存在之前，我在 Emacs 里面有一半的时间花在敲击 `M-/` 来补完单词上。现在，我有一个漂亮的弹出菜单可以为我做自动补全。无须多说，我们都需要它。

### 4. YASnippet ###

![](https://c2.staticflickr.com/2/1688/23830403072_0d8df6ef4c_b.jpg)

这是真正的程序员必备利器。总有一些代码片段会让我们觉得我们一辈子都在写它。对我来说，就是调试 PHP 时不断输入的 `var_dump(...);exit;`。经过一段时间一遍又一遍的输入`var_dump(...);exit;`，我觉得我可以预先把其做成录制好的、方便用到的代码片段。使用 YASnippets，可以很容易导入代码片段文件或者自己做个。之后，只要按下一个 tab 键，就可以将一个小的关键词扩展成一大段预先写好的代码，然后可以很方便地在里面修改。

### 5. Org-mode ###

![](https://c2.staticflickr.com/6/5687/23570808789_d683c949e4.jpg)

免责声明，我最近才开始使用 Org-mode，但它已经深深的吸引了我。从我看过数以百计的文章来说，Org-mode 可以改变你的生活。它背后的想法很简单：它是一种用普通文本做简单备注的模式，可以很容易地在任务列表和各种数据中转来转去，并进行一些比如按优先级或到期日期的过滤，或设置一个重复日期。然而，虽然思路简单，但你可以做到很多，用各种方法用于各种用途。与其去看一个长长的介绍，我觉得你可以去读读[现有教程][2]，有很多视频可以看，自己去体验一下 Org-mode 是多么强大。 

### 6. Helm ###

![](https://c2.staticflickr.com/2/1489/23310442334_5e6db22b79_c.jpg)

一些使用者喜欢它，但是其他人没有这么大的使用热情。我是后者的一部分。但在拥有这样一个庞大的追随者的情况下，是不能不提到它的。Helm 旨在完全变换你的 Emacs 使用体验。简单来说，Helm 是一个在 Emacs 中帮助你快速找到一个文件或命令的框架。根据你的输入，它将尝试使用词语自动完成来引导你将大脑的念头变为行动。起初感觉有点奇怪，但对一些人来说，Helm 本身就是一个信仰。虽然我不是 Helm 的粉丝，我欣赏 helm-occur 这一个伟大的工具可以在一个大文档搜索字符串并且在一个单独的缓冲区显示所有匹配结果，以便很容易在它们之间跳转。如果你正在寻找一个快速演示来了解 Helm 能做什么，我推荐[这篇文章][3]。

### 7. ace-jump-mode ###

![](https://c2.staticflickr.com/2/1710/23856168871_6df1faa565_c.jpg)

这是另一个有一大群追随者的插件，我正在试图成为 ace-jump-mode 的粉丝。掌握这个插件，你会体验到超越鼠标感受。简单描述一下，通过你选择的快捷方式触发 ace-jump-mode 后，你会被提示输入字符。输入一个字符，所有以该字符开头的单词中的那个字符就会替换成一个唯一字符并被高亮。输入一个屏幕上的高亮字符，你的光标会直接跳转到高亮显示的那个词。我不得不承认，这让我使用它时有点反应不过来，但是，一旦你掌握它，它将显著提升你在一个文档里的移动速度。（LCTT 译注：用文字描述比较困难，如截图中，你输入的是一个“i”，然后屏幕中所有以“i”开头的单词中的那个“i”都被替换成了从 a 到 z 的字符，并高亮；你可以输入这些高亮的字符直接跳转到那个位置。）

### 8. find-file-in-project ###

![](https://c2.staticflickr.com/2/1492/23570808809_96ec8454a9_c.jpg)

如果你喜欢 Sublime text 以及它可以用非常方便的`Ctrl-p`模糊搜索来打开一个项目中的任何文件的功能，你将会喜欢上 find-file-in-project （简称 ffip）的。使用设置指定了您的版本控制的根文件夹后，您可以轻松地调出一个很酷的文本条，通过快速扫描和搜索你的代码，来根据你输入的名称找到匹配的文件。我喜欢把它绑定到键盘上的 F6 键。如果你不知道整个目录从上到下的复杂结构，这很简单，而且非常易用。

### 9. Flymake ###

![](https://c2.staticflickr.com/6/5708/23310442354_cbba657ed3.jpg)

对 IDE 的爱好者来说，我认为语法检查器是 IDE 最强大的特性之一，它非常适合初学者和方便了那些疲惫的程序员。感谢 Flymake，Emacs 用户也可以享受到了语法检查器。因为我工作中用 PHP 很多，Flymake 就不需要任何额外的配置。当我写代码的时候，它会自动检查我的代码和高亮任何一个包含问题的行。对于编译语言，Flymake 将寻找一个用于检查你的代码的 Makefile。真神奇。

### 10. electric-pair ###

最后，但并非最不重要，在我看来，electric-pair 是最简单但最强大的插件之一。它会自动关闭你输入的括号。它起初看起来并不是很有用，但相信我，在被寻找配对括号折磨几百次之后，你会很高兴有这么一个插件，可以确保你所有的表达式的括号都是一一对应的。

总结一下，Emacs 是一个奇妙的工具。这可不是一个令人惊讶的说法。试试这些插件，看着你的效率直线飙升吧。这个列表当然不是详尽的列表。如果你想贡献你的建议，请在评论中这样做。我自己一直在寻找新的插件来试着发现 Emacs 的新体验。

--------------------------------------------------------------------------------

via: http://xmodulo.com/best-plugins-to-increase-productivity-on-emacs.html

作者：[Adrien Brochard][a]
译者：[zky001](https://github.com/zky001)
校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

[a]:http://xmodulo.com/author/adrien
[1]:http://xmodulo.com/turn-vim-full-fledged-ide.html
[2]:http://orgmode.org/worg/org-tutorials/
[3]:http://tuhdo.github.io/helm-intro.html
