Ag.vim と Qfreprece.vim の組み合わせで簡単置換処理する

まあ grep | sed ってするのがありがちだけど、IDE だったらリファクタリングツールあるし、vim 内で置換してもいいけど、もっと確実に楽に早くやれるとうれしいよね、というような話。

ag ってなに

grep をもっと高速に楽にできるようにした Perl のコマンドが ack で、それをさらに高速化したらしいというのが ag。

ackを捨てて、より高速なag(The Silver Searcher)に切り替えた - Glide Note - グライドノート

まあこの記事のちょうど数日前に社内チャットで知って使うようにはしてたんだけど(言い訳)。導入など公式は github にある。ggreer/the_silver_searcher · GitHub Mac なら Formula があるから brew insatall the_silver_searcher でいい。Ubuntu だと make install 必要だけど、まあやった。

実際たしかに高速だ。Ack でも十分便利だと思ってたけど、それでもさらに早いというのは正義だ。ページの応答速度も、コンパイルの速度も、計算処理も、PC やアプリの起動時間も、遅いよりは早い方がいい。

Ack.vim から ag.vim にした

公式にあるように Ack.vim をつかっててそのコマンドで切り替えてたけど、専用のプラグインが出てきているのでいちおうそっちをつかうことにした。
https://github.com/rking/ag.vim

Qfreprece.vim を知った

Qiita で unite-grepのバックエンドをagに切り替える #Vim - Qiita という記事があったあたりをきっかけに行き着いたのが @sigwyg さんの Vim: 複数ファイル検索/置換をもうちょい詳しく - Archiva という記事。Qfreprece.vim は @thinkca さん作のプラグイン。QuickFix 内で新たにバッファを開いて編集できる。qfreplace.vimなるものを作ってみた - 永遠に未完成

ag.vim + Qfreprece.vim がいい

具体的にはプロジェクトルートで作業を開始して、ag.vim で検索する。普段はそれでいいけど、置換や編集したいところがあったら Qfreprece.vim をつかって編集する。ちょっと試した感じ、なかなか感触がよかった。

まあ

こうして切羽詰まる前に武器を整えておくのはいいですね