Emacsパッケージ特集

More than 5 years have passed since last update.

バージョン24から入ったpackage.elにより、プラグインの導入が格段に容易になったEmacs。そこで、ELPA互換のリポジトリの一つであるMELPAのダウンロードTOP50+αのパッケージについてまとめてみた。

(ランキングに関しては2014/3/26時点の情報を使用)

それ単体で便利というよりも、有名なパッケージの依存関係でダウンロードされるライブラリもあるので注意。

ちなみに、個人的なオススメパッケージは、auto-completehelmflycheckundo-treezenburn-themeexpand-regionsmartparensrainbow-delimitersmultiple-cursors

また、TOP50には入っていないが、anzuvolatile-highlightspowerlinegit-gutter-fringehlinumsmooth-scrollyascrollundo-histpoint-undosequential-commandもおすすめ。

お好みでsmooth-scrollyascrollもどうぞ。

実際に自分が利用している.emacs.dをGithub上で公開してみたので、何かの参考になれば幸い。

https://github.com/hottestseason/dotemacs

package.elの利用方法については以下のリンクを参考に。

package.el - Emacs JP

P.S. たくさんのストックありがとうございます。ストックしてくださっている方や、新しくEmacsのパッケージを探している方のためにも、随時更新していこうと思います。

何か間違いがある場合や他にもオススメパッケージがあれば教えて下さい。


1. magit

EmacsのためのGitクライアント。

標準のVCと違い、Gitに特化することによって、コンソールからしか出来なかったことがほとんど出来る。

EmacsのGitクライアント:Magit - Qiita/takc923

magit-status


2. dash

elispのリスト操作のためのモダンライブラリ。

EmacsLispを書くときに便利なライブラリ「dash.el」 - Qiita/mrkuc

Emacsのモダンなライブラリ4+1選 #dash.el - Qiita/pogin503


3. auto-complete

言わずと知れた最強の自動補完機能。これのおかげでタイピング力が落ちたという声もちらほら。

公式サイト

auto-complete.png


4. popup

Emacsでポップアップメニューとツールチップを実現するためのライブラリ。auto-completeで使われている。


5. git-commit-mode

Gitのコミットメッセージを書くためのメジャーモード。

Gitのeditoremacs/emacsclientにするのをお忘れなく。

git-commit-mode.png


6. s

elispの文字列操作のためのモダンライブラリ。

Emacsのモダンなライブラリ4+1選 #s.el - Qiita/pogin503


7. helm

anythingの後継。

補完・リストアップ・絞り込みのためのインターフェース(?)。

使ったことがない人には何のこっちゃわからないかもしれないが、超絶オススメなパッケージの一つ。

日本語のドキュメントが少ないのが玉に瑕。

もう初心者なんて言わせない、Anything で始まる Emacs 道。 - 日々、とんは語る。 (注:Anythingの解説)

helm.gif


8. yasnippet

TextMateからインスパイアされたテンプレートフレームワーク。

標準でいろいろな言語に対応しているので、なかなか便利だが、「最近の言語はそもそもテンプレートなんていらないよね」なんて口が裂けても言えない。

最強テンプレート補完機能: YASnippet - Ochiailab Tips


9. git-rebase-mode

git rebase -iで作られるgit-rebase-todoのためのメジャーモード。git-commit-modeと同じくeditorの設定をお忘れなく。


10. flycheck

エラー表示のためのライブラリであるflymakeに、様々な言語のための初期設定や自作のための便利なAPIを追加してくれるパッケージ。

flymakeでゴニョゴニョする前に、こちらを試してみよう。

公式ユーザマニュアル

Flycheckでモダンなシンタックスチェック - Qiita/senda-akiha

flymakeの設定する前に flycheckを確認しよう - Life is very short

flycheck.png


11. undo-tree

undoの履歴をビジュアライズするライブラリ。

ぜひ、すべてのエディタに標準で付いていて欲しい機能。

これとundohistがあればGitなんていらないよね(嘘)。

Emacs24.3の導入とundo-tree.elの紹介 - Qiita/takc923

undo-tree.png


12. zenburn-theme

ローコントラストなテーマであるZenburnのEmacs版。

今までのスクリーンショットでの使用テーマがこれ。


13. pkg-info

インストールされているパッケージのバージョンを取得するライブラリ。

ciderflycheckprojectileなど、有名なパッケージで使用されている。


14. smex

idoM-x版。helmanythingは使いたくないけど、あいまい検索でM-xを使いたい人向け。

最近使ったコマンドは上位に出てくる。


15. expand-region

Emacsのリージョン(選択範囲)をインタラクティブに広げたり、狭めたりする機能を追加するパッケージ。

様々な言語やコンテキストに対応していて、特にlisp系言語やmultiple-cursorsと相性がいい。

Episode 09: expand-region - Emacs Rocks! (デモ)

expand-region.elの紹介 - Life is very short


16. markdown-mode

markdownのためのメジャーモード。

コマンド一発でプレビューが開けるらしいが、それならkobitoの方がいいよね(と、ごまをすってみる)。


17. cider

EmacsをClojure開発のためのIDE/REPL化するためのパッケージ。

Clojure開発環境インストール手順(Emacs) - /home/matstani/weblog


18. projectile

Emacsでプロジェクト内のファイルを管理するためのパッケージ。

gitやmercurial、bundler、sbtなどを認識して、自動でプロジェクトのルートディレクトリを割り出してくれ、

プロジェクト内のファイルやディレクトリへのアクセスを容易にする。

helmと連携する機能helm-projectileもある。


19. epl

package.elにいくつか便利なAPIを追加している。

pkg-infoで使用されている。


20. clojure-mode

Clojureのためのメジャーモード。


21. f

elispのファイル操作のためのモダンライブラリ。

Emacsのモダンなライブラリ4+1選 #f.el - Qiita/pogin503


22. ido-ubiquitous

ファイルやバッファだけではなく、ほとんどあらゆる場面でidoスタイルの補完を使えるようにするライブラリ。

helmで(ry。


23. paredit

lispなどで丸括弧のバランスを維持するためのパッケージ。

ParEdit チュートリアル - Daregada Archives


24. smartparens

カッコやクォートなどの対応関係を自動挿入・管理するパッケージ。

同じような機能を持つ、autopair、textmate、wrap-region、electric-pair-mode、pareditなどの機能をすべてまとめて、さらにいくつか新しい機能を加えた(らしい)。

latexやruby、htmlのための拡張機能も付いている。

smartparens.el での括弧処理 - 理系学生日記

デモ動画 - Youtube


25. haskell-mode

haskellのためのメジャーモード。


26. ace-jump-mode

移動したい文字にピンポイントで飛ぶためのパッケージ。

公式デモ

ace-jump-modeの紹介 - Life is very short

Emacsで1~3ストロークで画面上の任意の場所に移動するための設定 - non-nil


28. solarized-theme

SolarizedテーマのEmacs版。


28. rainbow-delimiters

lispのように大量の丸括弧が入れ子構造になっている時に、対応する括弧ごとに色を変え、見やすくするパッケージ。

Emacs LispのRainbow Delimitersで,対応する括弧を虹色で示そう. - Qiita/ncaq

rainbow-delimiters.png


29. multiple-cursors

複数の場所にある特定の単語の周辺を同時に編集する機能。

Sublime TextMultiple Selection由来で、リファクタリングに便利。

expand-regionregion-bindings-modeと合わせて使うと効果バツグン。

Episode 13: multiple-cursors - Emacs Rocks!

multiple-cursors.elのキーバインドを少しだけ改善 - tam5917's diary


30. gitconfig-mode

.gitconfig.git/configなどのためのメジャーモード。


31. elisp-slime-nav

Common Lisp開発のための拡張であるSLIMEの機能の一つである「シンボルの定義場所への移動」をEmacs Lispでも使えるようにしたパッケージ。


32. js2-mode

Google所属のハッカー、Steve Yeggeによって開発されたJavaScriptのためのメジャーモード。

標準のjavascirpt-modeと比べると


  • Ecma-262対応

  • 正確なシンタックスハイライト

  • 動的なエラー表示

  • Rhino、SpiderMonkeyのJavaScript拡張へのサポート

が強み(らしい)。

js2-mode - 紫藤のWiki


33. gitignore-mode

.gitignore.git/info/excludeなどのためのメジャーモード。


34. diminish

パッケージをたくさん入れてると、モードラインにたくさんのマイナーモード名が表示されるようになる。

そんな時、このパッケージを利用すれば、モードラインに表示されるマイナーモード名を消したり、変更することが出来る。

マイナーモード表示をカスタマイズ - Meadow/Emacs memo


35. inf-ruby

EmacsからRubyのREPLが利用できるパッケージ。

M-x inf-ruby-console-autoを利用すれば、Rails(&Pry)を認識してくれる。

inf-rubyメモ - odz buffer


36. gh

EmacsのGithubクライアントのライブラリ。


37. web-mode

HTMLの中でJavaScriptやCSS、PHP、Rubyなどを書くためのメジャーモード。

埋め込まれたコードは正しく色付けされる。

昔はmmm-modeとか使ってた記憶があるけど、そちらは現在あまりメンテナンスされてない模様。

っていうか、そもそも今はslimとかjadeを使っているので、生のHTMLを書いていない。


38. exec-path-from-shell

MacやLinuxなどUnix系の環境でシェル以外からEmacsを起動すると、PATHの設定が上手く引き継がれない場合がある。そんな時、このライブラリを使えば、

(exec-path-from-shell-initialize)

と書くだけで、すべてバッチリ。

EmacsでPATHの設定が引き継がれない問題をエレガントに解決する


39. pcache

永続的なデータをハッシュテーブルのようなデータ構造で保存するためのライブラリ。


40. php-mode

PHPのためのメジャーモード。


41. coffee-mode

CoffeeScript(or IcedCoffeeScript)のためのメジャーモード。


42. color-theme

Emacsの色設定をテーマとして纏めておくことができるライブラリ。

標準でたくさんのテーマが同梱されている。

Emacs24からは標準でthemeフレームワークが入っているので、もういらない子。

color-themeでEmacsの見た目をきれいにする - Qiita/kubosho_


43. gist

Emacsからgistの作成・管理を行うためのパッケージ。


44. yaml-mode

YAMLのためのメジャーモード。


45. logito

tiny logging framework for Emacs.

ghで利用されている。


46. ack-and-half

Emacsからackを利用するためのパッケージ。

ack.elfull-ack.elを参考にして作られた。


47. dired+

Emacs標準のdiredの強化版。

Dired Plus - EmacsWiki


48. move-text

現在いる行や選択しているリージョンをM-upM-downで上下に移動できる。


49. slime

EmacsをCommon Lisp開発のためのIDE化してくれるライブラリ。

公式サイト


50. ctable

Emacsで表を表示させるためのMVCなフレームワーク。


56. anzu

vim-anzuのEmacs版。

検索時にマッチした数と現在の位置を表示してくれる。

作者による解説ページ - Qiita/syohex

anzu


57. volatile-highlights

undoやyankした後にどこが変わったかをハイライトしてくれる。

volatile-highlights


104. powerline

Emacsのモードラインをだいぶシャレオツにしてくれるパッケージ。

VimのPowerlineのEmacs版。

カスタマイズする場合にはpowerline-active1powerline-active2辺りのfaceをいじると色とかが変えられる。

モードライン全体の構成を変えたい人は、mode-line-formatを自分好みに設定しよう。

書き方に困ったらpowerline-themes.elを参考にするといいかも。

emacsにpowerlineを導入 - $shibayu36->blog;

powerline


124. git-gutter-fringe

Sublime TextのGit GutterのEmacs版で、前回からの変更点を視覚的に表示してくれる機能。

git-gutterと違い、emacs -nwのようなtty frameでは動作しないが、

fringe(フレームの左右の余白)部分に表示するため、linum-modeと併用できる。

ちなみに、使ったことはないが、git-gutterから派生したプロジェクトでgit-gutter+なるものが存在していて、

git-gutterの作者もオススメしているので、興味がある方は使ってみるといいかも。

git-gutter.el - Emacs JP

git-gutterと git-gutter+の違い - Life is very short


440. hlinum

行番号を左に出してくれるlinum-modeにプラスして、現在いる行番号を強調表示してくれる。

作者による紹介ページ - tm_tnの布団の中


483. smooth-scroll

スクロールを滑らかにしてくれる。

Emacsのスクロールが滑らかになって気持ちいい! - Qiita/ShingoFukuyama

smooth-scroll


602. yascroll

OS標準のスクロールバーなんてダサくて、速攻で消してる人にオススメなパッケージ。

スクロールバーをちょっとかっこよくしてくれる。

詳しくはリンク先か、上のsmooth-scrollのスクリーンショットで確認してみよう。

作者による解説ページ


696. undohist

バッファやEmacsを閉じた後もファイルのundoの履歴を保持してくれる。


811. point-undo

カーソル位置をundo・redoする機能を追加してくれる。


974. sequential-command

rubykitch先生が開発した、同じコマンドを連続実行することで挙動を変える機能を追加するパッケージ。

例えば、一緒にインストールされるsequential-command-configをrequireすると定義されるseq-homeは次のような挙動を示す。


  1. まず行頭に飛ぶ

  2. 次にバッファ先頭に飛ぶ

  3. 次に元の場所に戻る

バッファ先頭に行くM-<とか覚えたくない人には大変便利。

seq-homeC-aに割り当てとけば、C-aを2回連打すればバッファ先頭に行ける)

同様にC-eに対応するseq-endや前の単語を次々に加工するseq-upcase-backward-wordseq-downcase-backward-wordなどもめっちゃ便利。

smartrep.elでも同じことが実現出来ると思うが、そちらは使ったことないので、是非いつか使ってみたい。

作者による紹介ページ - rubykitch