ripgrep でとりあえず使うオプション
公開:
更新:
ag は定番でしたが、本家バイナリは Windows での Unicode の扱いに難がありました1。職場の PC 更新に伴って rg に移行したので、とりあえず使うオプションを書き残します。
大文字・小文字のデフォルトと、ファイル無視規則の外し方が大きく違います。
目次
大文字・小文字
ag はスマートケース (-S) がデフォルトです。rg は大文字・小文字を区別する (case-sensitive) のがデフォルトです。
スマートケース (-S)
パターンがすべて小文字なら大文字小文字を無視し、大文字が含まれていれば区別します。
rg -S foo
foo も Foo も FOO もヒットします。
rg -S Foo
Foo だけがヒットします。
無視する (-i)
rg -i Foo
区別する (-s)
デフォルトの動作です。
rg -s foo
設定ファイルで -S を常時有効にしているときには、その検索だけ区別したい場合に使います。
リテラル検索
パターンを正規表現ではなく、書いた文字どおりに探します。a.b は a.b だけにマッチし、aXb にはマッチしません。
rg -F "a.b"
無視規則を外す
ag -u は、無視ファイル・隠しファイル・バイナリを一度に対象にできました。rg では -u を重ねて、段階的に外します。
rg -uuu bar
-uは.gitignoreなどをリスペクトしません (--no-ignore)-uuは隠しファイルも探します (--hidden)-uuuはバイナリも探します (--binary)
バイナリに一致しても行の中身は出さず、一致したことだけを知らせます。中身まで表示するなら -a です。
-uuu でもシンボリックリンクは辿りません。辿るなら -L を足します。
ちなみに、Windows で問題が起きないベストな
agバイナリはこれです: https://github.com/JFLarvoire/the_silver_searcher ↩︎



