🔎

ripgrepの結果をページャーでいい感じに表示する

2024/12/10に公開

はじめに

ripgreprg)で検索結果が大量にある場合、出力をページャーに渡すことがあると思いますが、そのまま渡しただけでは結果が分かりにくいと思います。

rg "foo" | bat
rg "foo" | less

表示結果

この記事は、ripgrepの結果をページャーでいい感じに表示できないか調べた結果をまとめたものです。

以下の例では、https://github.com/rust-lang/rustで「foo」という文字列を検索します。

$ git rev-parse HEAD
ff7906bfe1ed264bf9c4d3abe1940e357b7e61dd

rg -p

rg-p--pretty)オプションを付けて実行するとカラー出力、見出し、行番号の表示が常に有効になります。
このオプションを指定した出力をbatless -Rに渡すことでいい感じに表示できます。

rg -p "foo" | bat
rg -p "foo" | less -R

表示結果

batgrep

https://github.com/eth-p/bat-extrasbatgrepを使うことでもいい感じに表示できます。

batgrep "foo"

表示結果

delta

rg--jsonオプションを付けて実行した結果をdeltaに渡すことでもいい感じに表示できます。

rg --json "foo" | delta

表示結果

https://dandavison.github.io/delta/grep.html

終わりに

rgの結果が大量にあるときにページャーでいい感じに表示する方法を知らなかったので、不便に感じていました。
今回調べた方法でこの問題が解決できそうなので、今後はこれらを活用したいです。

GitHubで編集を提案

Discussion