ぶていのログでぶログ

思い出したが吉日

git grepでヒットしたファイルをvimで開けると便利

git grepしてヒットした内容を確認して、ファイル名をコピーして… っていうのがめんどくさいので、pecoとか使ってvimで開けると便利だなぁっと思ったのでワンライナーを作ってみた。

$ git grep -n $KEYWORD | peco | awk -F: '{print $1}' | xargs -I% bash -c 'vim "%" <&- <&2'

xargs vim するとターミナルがぶっ壊れる。 ので、ちょっとしたトリックでこれを回避している。 このトリックは id:lamanotrama の7年前(!)の記事を見て閃いた。

lamanotrama.hateblo.jp

実際、上記のワンライナーはgitのサブコマンドとして使っている。 私は gv として割り当てた

[alias]
 gv = "!f(){ git grep -n $* | peco | awk -F: '{print $1}' | xargs -I% bash -c 'vim "%" <&- <&2'; };f"