🔎
ripgrepの結果をページャーでいい感じに表示する
はじめに
ripgrep(rg
)で検索結果が大量にある場合、出力をページャーに渡すことがあると思いますが、そのまま渡しただけでは結果が分かりにくいと思います。
rg "foo" | bat
rg "foo" | less
この記事は、ripgrepの結果をページャーでいい感じに表示できないか調べた結果をまとめたものです。
以下の例では、https://github.com/rust-lang/rustで「foo」という文字列を検索します。
$ git rev-parse HEAD
ff7906bfe1ed264bf9c4d3abe1940e357b7e61dd
rg -p
rg
を-p
(--pretty
)オプションを付けて実行するとカラー出力、見出し、行番号の表示が常に有効になります。
このオプションを指定した出力をbat
やless -R
に渡すことでいい感じに表示できます。
rg -p "foo" | bat
rg -p "foo" | less -R
batgrep
https://github.com/eth-p/bat-extrasのbatgrep
を使うことでもいい感じに表示できます。
batgrep "foo"
delta
rg
を--json
オプションを付けて実行した結果をdelta
に渡すことでもいい感じに表示できます。
rg --json "foo" | delta
終わりに
rg
の結果が大量にあるときにページャーでいい感じに表示する方法を知らなかったので、不便に感じていました。
今回調べた方法でこの問題が解決できそうなので、今後はこれらを活用したいです。
Discussion