git grepしてヒットした内容を確認して、ファイル名をコピーして… っていうのがめんどくさいので、pecoとか使ってvimで開けると便利だなぁっと思ったのでワンライナーを作ってみた。
$ git grep -n $KEYWORD | peco | awk -F: '{print $1}' | xargs -I% bash -c 'vim "%" <&- <&2'
xargs vim するとターミナルがぶっ壊れる。 ので、ちょっとしたトリックでこれを回避している。 このトリックは id:lamanotrama の7年前(!)の記事を見て閃いた。
実際、上記のワンライナーはgitのサブコマンドとして使っている。
私は gv
として割り当てた
[alias] gv = "!f(){ git grep -n $* | peco | awk -F: '{print $1}' | xargs -I% bash -c 'vim "%" <&- <&2'; };f"