来年も使いたいelispランキング2013

そろそろ年末ということで、この記事ではわたしが今年お世話になったelispの中から「これが無いと生きていけない！」というものをランキング形式で紹介していきたいと思います。

# 10位 Auto Complete Mode

[Auto Complete Mode - GNU Emacsのための最も賢い自動補完機能](http://cx4a.org/software/auto-complete/index.ja.html)

![auto-complete.png](https://qiita-image-store.s3.amazonaws.com/0/14347/dd39001b-8131-ed04-88a6-0d9a124fac57.png)

Emacsで思い通りの補完を実現してくれる拡張機能です。

わたしは補完候補を選択するポップアップをあまり使わないので、`(setq ac-auto-show-menu nil)`として自動表示しないようにしています。

[auto-complete-etags](https://github.com/whitypig/auto-complete-etags)を使って事前に生成したタグファイルを補完候補に入れておくと、独自に定義したクラスやメソッド名もうまいこと補完してくれるのでおすすめです。

# 9位 git-gutter

[syohex/emacs-git-gutter](https://github.com/syohex/emacs-git-gutter)

![git-gutter.png](https://qiita-image-store.s3.amazonaws.com/0/14347/926df449-b105-ef5c-d2f5-72b7c2614d4c.png)

編集中のファイルのどの行が前回コミット時から追加/変更/削除されたのかを表示してくれる拡張機能です。シンプルな機能ですが重宝しています。

# 8位 el-get

[dimitri/el-get](https://github.com/dimitri/el-get)

elispのパッケージ管理のための拡張機能です。

Emacs24から標準のパッケージ機能が導入されましたが、ELPAやMELPAに無いelispでも自分でレシピを書けばパッケージとして扱えるというのが良い気がしたのでel-getを使っています。

.emacsに`(el-get 'sync 使用したいパッケージのリスト)`と書いておくと、まっさらな環境に.emacsを持ってくるだけでいつものパッケージが自動でインストールされて大変便利です。

# 7位 flymake

![flymake.png](https://qiita-image-store.s3.amazonaws.com/0/14347/3f3227bc-6ae0-f4c9-77bb-2e5896ba5cea.png)

編集中のソースコードの文法チェックを行い、文法上の誤りをハイライト表示してくれるelispです。Emacsに標準添付されています。

flymakeのおかげで、コードを書いていざ動かそうとしてみたらシンタックスエラーということがほぼなくなりました。

# 6位 ediff

![ediff.png](https://qiita-image-store.s3.amazonaws.com/0/14347/5f726289-eef7-91ae-74d0-04a22724c8f3.png)

Emacs標準のdiff機能です。マージもできます。

通常のdiffコマンドの出力は正直見てもいまいちピンと来ないのですが、ediffは比較元と比較先を並べて表示してくれるのでとてもわかりやすいです。

デフォルトの設定のままだと使いにくいので、以下のような設定にするのがおすすめです。

```el
;; コントロール用のバッファを同一フレーム内に表示
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
;; diffのバッファを上下ではなく左右に並べる
(setq ediff-split-window-function 'split-window-horizontally)
```

# 5位 helm-ag

[syohex/emacs-helm-ag](https://github.com/syohex/emacs-helm-ag)

![helm-ag.png](https://qiita-image-store.s3.amazonaws.com/0/14347/9eaf3f42-2234-d01b-d61e-bbe47969036d.png)

grepの超高速版、[The Silver Searcher](https://github.com/ggreer/the_silver_searcher)で検索を実行して結果をhelmインターフェースで表示してくれるhelmのプラグインです。これまで検索には`M-x moccur-grep-find`を使っていたのですが、圧倒的にhelm-agが速いです。

C-zで検索結果を閉じずに該当箇所を表示できることと、`M-x helm-resume`や`C-u M-x helm-resume`で直前の検索結果を復元できることを覚えておくとよいと思います。

複数のファイルに含まれる特定の文字列を一括置換したい時は未だに`M-x moccur-grep-find`してからmoccur-editで修正してるのですが、こちらもagを使ってなんとかしたいのでよい方法を知っている方は教えていただけるとうれしいです。

# 4位 helm-ls-git

[emacs-helm/helm-ls-git](https://github.com/emacs-helm/helm-ls-git)

![helm-git-ls.png](https://qiita-image-store.s3.amazonaws.com/0/14347/826eb558-b037-3d88-962d-0fadc139024e.png)

現在開いているバッファが含まれているgitリポジトリの全ファイルをhelmインターフェースで表示してくれるhelmのプラグインです。

このプラグインとタグジャンプのおかげで、ファイルを開くストレスはだいぶ軽減されました。

# 3位 helm

[emacs-helm/helm](https://github.com/emacs-helm/helm)

みんな大好きhelmです。

もはや説明するまでもないので説明は省略します。

# 2位 dired

2位はまさかのdiredです！

diredはEmacsに標準添付されているファイラです。個人的にはEmacsを使っているのであれば使わないともったいない！という機能だと思うのですが、わたしの観測範囲では意外と使われていなさそうな気がします。diredは

* 全部キーボードで操作できるので楽
* OSや環境が変わっても同じ操作感
* diredバッファを並べれば二窓ファイラ的にファイルの移動やコピーができる ※要`(setq dired-dwim-target t)`
* TARMPの機能で、リモートのサーバへのファイル操作も簡単
* ファイル名の正規表現でファイルを選択できる
* 画像表示もできる

などなど、とにかく良いことづくめなのでみんな使うとよいと思います！なおその際は`(setq dired-dwim-target t)`しておくことを強くおすすめします。

diredの使い方に関しては、[先日記事を書いた](http://qiita.com/l3msh0@github/items/8665122e01f6f5ef502f)ので、そちらも参照してみてください。

# 1位 magit

[magit/magit](https://github.com/magit/magit)

magitはEmacsからgitを操作するための拡張機能です。

慣れてしまえばmagit無しではgitを操作する気になれないくらい快適になります。特にeキーで差分をediffで表示する機能と、hunk単位でstageする機能はとても便利なので、使ったことがない方はぜひ試してみてください。

[Emacs - magit の部分 stage が便利で便利で - Qiita](http://qiita.com/nishikawasasaki/items/f690ee08f6a32d9d03fa)

# ランク外

以下はランク外としましたが、普段からよく使っていてきっと来年も使うelispです。

* [ido-mode](http://www.emacswiki.org/emacs/InteractivelyDoThings) ファイルを開くのに便利
* [yasnippet](https://github.com/capitaomorte/yasnippet) クラスやメソッドの宣言、制御構造などの自作スニペットを登録しています
* [smartparens](https://github.com/Fuco1/smartparens) 以前はpareditを使っていましたがなんとなくモダンぽいので今はこっちを使ってます
* [auto-rsync-mode](https://gist.github.com/l3msh0/5006645) ローカルマシンで作業してサーバにrsyncみたいなことをよくやるので適当に作りました

# おわりに

思いつくままに1位まで書き連ねてみましたが、いかがでしたか。無いと困るもの…と考えるとどうしても定番のものが多くなってしまいました。

ここに載せたもの以外にも、みなさんこれだけは欠かせないというelispがあると思います。こっちの方がもっと便利！などの情報や、自分なりのランキングなどありましたら、コメントでも別の記事でもよいので、教えていただけるとうれしいです。

それでは、来年もEmacsとともによいお年をお迎えください。

明日の.emacs Advent Calendar は kbkbkbkb1 さんです。