Open3
ripgrep+fzf+batcatで高速にgrepし、絞り込み、シンタックスハイライト表示する
3行で説明
- grep、もっと高速に検索したいですよね。そこでripgrep。爆速です。
- grep結果、fzfで絞り込みつつ、batcatでシンタックスハイライトしたいですよね。
- をやりたくてLLMに投げてみたところ、ハルシネーションで失敗連発。やっと成功したので共有します。
Linux bash
- ripgrep, fzf, batcatをインストールしてください
- .bash_profile等に、以下のように記述してください
- 「rgf 検索ワード」で検索できて、fzfで絞り込み、batcatでプレビューできます
- シンボリックリンクディレクトリも検索対象にしています。外したい場合は--followを外してください
rgf() {
rg "$1" --follow --line-number --no-heading |
fzf --delimiter : --preview '
file={1}
line={2}
half=$((FZF_PREVIEW_LINES / 2))
start=$((line - half))
(( start < 1 )) && start=1
end=$((start + FZF_PREVIEW_LINES - 1))
batcat --style=numbers --color=always --line-range ${start}:${end} --highlight-line ${line} "$file"
'
}
ENTERキーで、選んだ行をVSCodeで開くバージョン
- 末尾付近の1行を、awk | xags code へのリダイレクトに書き換えるだけです
rgf() {
rg "$1" --follow --line-number --no-heading |
fzf --delimiter : --preview '
file={1}
line={2}
half=$((FZF_PREVIEW_LINES / 2))
start=$((line - half))
(( start < 1 )) && start=1
end=$((start + FZF_PREVIEW_LINES - 1))
batcat --style=numbers --color=always --line-range ${start}:${end} --highlight-line ${line} "$file"
' | awk -F: '{print $1 ":" $2}' | xargs code -g
}