上でも書いたように最近自宅の開発環境をUbuntuにしたりとOSが違うが出来るだけ吸収出来るようにしている。
リポジトリは下記で管理している。
今回はVimの話題。
最近ちゃんと?vimを使うようになって開発でも使用しているけど、小さなプロジェクトなら良いけど大きめのプロジェクトをいじる時に困ったことが。
grep遅い
ファイル内でgrepなら良いけどプロジェクト内のファイルを横断的にgrepする時にDenite grep
を使っていると待つことがあってこれをスムーズにやりたい欲求が出てきた。
調べてみると下記のThe Silver Searcherというものが早いらしい。
The Silver Searcher(Ag)とは??
ackに似たコードgrepして検索するためのツールでCで実装されている。
このAgはサイト内でもackとの速度面で早いよと行っていて、READMEとかには34xだぜのようなことも書いてある。
※ グラフ付きで比較とかもしている => Geoff's site: The Silver Searcher Speed Graphs
そんなに早いなら使ってみようと思ったのですが、出来れば今のDeinを使う上でコマンドは変えたくなかったので、既存のgrep時のコメンドをAgで上書きする方法を取りました。
作業内容
Agのインストール自体は各環境コマンド一発で入るので楽です。 参考
次にDenite grep
で使用するコマンドを上書きするためにvimrc
を変更します。
" .vimrc " ag setting call denite#custom#var('file_rec', 'command', ['ag', '--follow', '--nocolor', '--nogroup', '-g', '']) call denite#custom#var('grep', 'command', ['ag']) call denite#custom#var('grep', 'default_opts', ['-i', '--vimgrep']) call denite#custom#var('grep', 'recursive_opts', []) call denite#custom#var('grep', 'pattern_opt', []) call denite#custom#var('grep', 'separator', ['--']) call denite#custom#var('grep', 'final_opts', [])
grep時のコマンドを変えるために call denite#custom#var('grep', 'command', ['ag'])
を入れました。
またついでにファイル検索時もagを使うようにcall denite#custom#var('file_rec', 'command', ['ag', '--follow', '--nocolor', '--nogroup', '-g', ''])
を追加して対応させました。
作業自体のPRは下記でやってます。
github.com
快適になったー