Using grep at Vim
背景 Background
Windowsで開発してた時は某エディタに備わってたgrepで検索し、
今はターミナルの別タブでコマンドベースでgrepしているような状態です。
Vimにも大分慣れてきたので、Vim上で検索出来るようにしたいと思います。
最近では、ack、agなどが人気で、grepが斜陽気味な印象を受けましたが、
GNU Projectが2014年02月17日に"grep2.17"を出した模様です。パフォーマンスは「10倍の高速化」という事で期待が持てます。
実績なども視野に入れて今回はgrepを使いVim上で検索できるようにしたいと思います。
目標 Goal
環境 Environment
手順 Operation
grep-2.18のインストールが依存ファイルの関係でうまくいきませんでした。
まぁ、バージョンの古いgrepが入っているのでとりあえず、よしとします。
$ brew search grep $ brew info grep $ brew info pcre $ brew install grep --default-names $ which grep /usr/local/bin/grep $ grep --version grep (GNU grep) 2.18
- QFixGrep インストール
$ cd $ mkdir .vim/qfixapp $ wget https://sites.google.com/site/fudist/files/qfixgrep.zip?attredirects=0 -O /tmp/qfixgrep.zip $ unzip /tmp/qfixgrep.zip -d .vim/
- .vimrcの設定
感想
想定道理の動きをしてくれて申し分ない感じです。
残念な点としてはgrep実行した後にVimを閉じるとgrepの結果がターミナル上に
表示されている事です。
これは標準出力させないとQFixGrep上にも出力されないことから、
標準出力結果をQFixGrepが取得して画面に表示していることが予想されます。
ターミナルに表示させずに、QFixGrepのみに表示する方法はとりあえず放置です。
また、プロジェク卜のルートディレクトリの取得方法について、調べないとなぁとtwitterでつぶやいた所、
@manga_osyoさんから取得方法を教えて頂きました。
@NanohaAsOnKai vital.vim を使えば echo vital#of("vital").import("Prelude").path2project_directory("%") のようにしてプロジェクトのディレクトリパスを取得する事が可能ですね。
— osyo_memo (@osyo_memo) 2014, 4月 20
とても助かりました。ありがとうございます。