vimgrepとQuickfix知らないVimmerはちょっとこっち来い - http://qiita.com/items/0c1aff03949cb1b8fe6b
こんな記事が上がっていたので、勝手に応用編を書いてみる。
まあ、以前LT等で話したことをQiitaに書き移してるだけですが。
QuickFixの拡張
QFixGrepというプラグインがあります。
これを入れていると、以下のような事が出来ます。
- QuickFixバッファで選択した検索対象をプレビューして確認できる
- QuickFixの表示を更に絞り込んで検索
- QuickFixの表示をファイル名、更新時間、内容でソートする
他にもいくつか機能がありますし、Windowsで利用するのに便利な解説などもあります。
また、以前自分のブログなどで書きましたが、qfreplaceというプラグインがあります。
QuickFixで出力されている各行をまとめて置換することが出来ます。
メソッド名の変更のお供に。
fugitiveの真価
fugitiveというvimからgitを操作するためのプラグインがあります。
導入した後で、以下のようなコマンドを打ってみましょう。
- :Glog | copen (現在開いているファイルの過去の編集履歴をQuickFixで参照)
- 選択するとその時点でのファイルの断面を開く
- :Glog -- | copen (gitリポジトリのコミットログの一覧をQuickFixで参照)
- 選択するとログとdiffの内容を表示するバッファが開く
- :Glog master..HEAD -- | copen (masterから現在のブランチまでのコミットログの一覧をQuickFixで参照)
- 選択するとログとdiffの内容を表示するバッファが開く
- :Ggrep hoge | copen (hogeでgit grepした結果をQuickFixで参照)
- 選択するとヒットした箇所に移動する
- qfreplaceでまとめて置換可能
(GlogのQuickFix機能はQfixGrepのプレビューとは余り相性が良くない)
gitのコミットをvimから直接扱えるので、過去の編集履歴から削除したコードを持ってきたりできるわけです。
過去の編集履歴を参照している状態でGdiffコマンドを使えば、即座に現在の状態との差分を確認する事も可能です。
これで、gitのコミットの活用が捗りますね。