Emacsを使ってのgrepでは,ずっとrgrepを使ってきたのですが,最近なんだか重い気がして色々調べてみました.
するとどうやら,最近はgrepやackじゃなくて,ag(the silver searcher)を使ったほうが速いとのこと…….
そしてこれはemacsからも利用できるんですね.
ag.el
マジで速くなります.
今まで,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の拡張設定をしてやればいいです.
そのへんは,こちらが詳しい.