バージョン24から入ったpackage.el
により、プラグインの導入が格段に容易になったEmacs。そこで、ELPA互換のリポジトリの一つであるMELPAのダウンロードTOP50+αのパッケージについてまとめてみた。
(ランキングに関しては2014/3/26時点の情報を使用)
それ単体で便利というよりも、有名なパッケージの依存関係でダウンロードされるライブラリもあるので注意。
ちなみに、個人的なオススメパッケージは、auto-complete、helm、flycheck、undo-tree、zenburn-theme、expand-region、smartparens、rainbow-delimiters、multiple-cursors。
また、TOP50には入っていないが、anzu、volatile-highlights、powerline、git-gutter-fringe、hlinum、smooth-scroll、yascroll、undo-hist、point-undo、sequential-commandもおすすめ。
お好みでsmooth-scroll、yascrollもどうぞ。
実際に自分が利用している.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
2. dash
elispのリスト操作のためのモダンライブラリ。
EmacsLispを書くときに便利なライブラリ「dash.el」 - Qiita/mrkuc
Emacsのモダンなライブラリ4+1選 #dash.el - Qiita/pogin503
3. auto-complete
言わずと知れた最強の自動補完機能。これのおかげでタイピング力が落ちたという声もちらほら。
4. popup
Emacsでポップアップメニューとツールチップを実現するためのライブラリ。auto-completeで使われている。
5. git-commit-mode
Gitのコミットメッセージを書くためのメジャーモード。
Gitのeditor
をemacs
/emacsclient
にするのをお忘れなく。
6. s
elispの文字列操作のためのモダンライブラリ。
Emacsのモダンなライブラリ4+1選 #s.el - Qiita/pogin503
7. helm
anything
の後継。
補完・リストアップ・絞り込みのためのインターフェース(?)。
使ったことがない人には何のこっちゃわからないかもしれないが、超絶オススメなパッケージの一つ。
日本語のドキュメントが少ないのが玉に瑕。
もう初心者なんて言わせない、Anything で始まる Emacs 道。 - 日々、とんは語る。 (注:Anythingの解説)
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
11. undo-tree
undoの履歴をビジュアライズするライブラリ。
ぜひ、すべてのエディタに標準で付いていて欲しい機能。
これとundohistがあればGitなんていらないよね(嘘)。
Emacs24.3の導入とundo-tree.elの紹介 - Qiita/takc923
12. zenburn-theme
ローコントラストなテーマであるZenburnのEmacs版。
今までのスクリーンショットでの使用テーマがこれ。
13. pkg-info
インストールされているパッケージのバージョンを取得するライブラリ。
cider
やflycheck
、projectile
など、有名なパッケージで使用されている。
14. smex
ido
のM-x
版。helm
やanything
は使いたくないけど、あいまい検索で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
29. multiple-cursors
複数の場所にある特定の単語の周辺を同時に編集する機能。
Sublime Text
のMultiple Selection
由来で、リファクタリングに便利。
expand-regionやregion-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拡張へのサポート
が強み(らしい)。
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)を認識してくれる。
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.elやfull-ack.elを参考にして作られた。
47. dired+
Emacs標準のdired
の強化版。
48. move-text
現在いる行や選択しているリージョンをM-up
やM-down
で上下に移動できる。
49. slime
EmacsをCommon Lisp開発のためのIDE化してくれるライブラリ。
50. ctable
Emacsで表を表示させるためのMVCなフレームワーク。
56. anzu
vim-anzuのEmacs版。
検索時にマッチした数と現在の位置を表示してくれる。
57. volatile-highlights
undoやyankした後にどこが変わったかをハイライトしてくれる。
104. powerline
Emacsのモードラインをだいぶシャレオツにしてくれるパッケージ。
VimのPowerlineのEmacs版。
カスタマイズする場合にはpowerline-active1
、powerline-active2
辺りのfaceをいじると色とかが変えられる。
モードライン全体の構成を変えたい人は、mode-line-format
を自分好みに設定しよう。
書き方に困ったらpowerline-themes.elを参考にするといいかも。
emacsにpowerlineを導入 - $shibayu36->blog;
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にプラスして、現在いる行番号を強調表示してくれる。
483. smooth-scroll
スクロールを滑らかにしてくれる。
Emacsのスクロールが滑らかになって気持ちいい! - Qiita/ShingoFukuyama
602. yascroll
OS標準のスクロールバーなんてダサくて、速攻で消してる人にオススメなパッケージ。
スクロールバーをちょっとかっこよくしてくれる。
詳しくはリンク先か、上のsmooth-scrollのスクリーンショットで確認してみよう。
696. undohist
バッファやEmacsを閉じた後もファイルのundoの履歴を保持してくれる。
811. point-undo
カーソル位置をundo・redoする機能を追加してくれる。
974. sequential-command
rubykitch先生が開発した、同じコマンドを連続実行することで挙動を変える機能を追加するパッケージ。
例えば、一緒にインストールされるsequential-command-config
をrequireすると定義されるseq-home
は次のような挙動を示す。
- まず行頭に飛ぶ
- 次にバッファ先頭に飛ぶ
- 次に元の場所に戻る
バッファ先頭に行くM-<
とか覚えたくない人には大変便利。
(seq-home
をC-a
に割り当てとけば、C-a
を2回連打すればバッファ先頭に行ける)
同様にC-e
に対応するseq-end
や前の単語を次々に加工するseq-upcase-backward-word
やseq-downcase-backward-word
などもめっちゃ便利。
smartrep.elでも同じことが実現出来ると思うが、そちらは使ったことないので、是非いつか使ってみたい。