Emacsにagを入れたら速すぎて捗る

Emacsを使ってのgrepでは,ずっとrgrepを使ってきたのですが,最近なんだか重い気がして色々調べてみました.

するとどうやら,最近はgrepやackじゃなくて,ag(the silver searcher)を使ったほうが速いとのこと…….
そしてこれはemacsからも利用できるんですね.

ag.el


Wilfred/ag.el · GitHub


マジで速くなります.

今まで,rgrepでは,検索語句や範囲の設定をしたあと,emacsが頑張って読み込んでくれてる感じがありましたが,これがほとんど瞬時にでてきます.

導入

  • the silver searcher本体のインストール
  • emacsにagを導入

するだけで使えるようになります.

silver searcherはaptやyumリポジトリが公開されているので,そのあたりから導入できるかと思います.
普通にターミナルで検索するにしても,結構便利なものです.


emacsへのag.el導入は,githubを見ればできるかと思いますが,念の為.
packagesを使えば簡単なんですけど,リポジトリコピーするのが好きなので.

今回は,セットで,wgrepも入れています.

s.elをコピーします.
magnars/s.el · GitHub


同じディレクトリにag.elをコピーします.
Wilfred/ag.el · GitHub


wgrepもコピーしてきます.
mhayashi1120/Emacs-wgrep · GitHub



あとはこれらをload-pathで読み込める場所に置いてやって,

(require 'ag)
(require 'wgrep-ag)

として読み込んでやるだけで大丈夫.
s.elはag.elが必要としています.packagesで入れると,このへんは自動で入りますね.


使い方

rgrepの時とあまり変わりありません.ただひたすら速い.

M-x agで呼び出せるので,あとは検索してやるだけです.
検索結果について,編集したり反映したりしたい場合は,wgrep-agの拡張設定をしてやればいいです.

そのへんは,こちらが詳しい.

codeout.hatenablog.com


参考

gihyo.jp

kotatu.org