ripgrep の概要
ripgrep は、フォルダ内のファイルからテキストや正規表現を非常に速く検索する、無料でオープンソースのコマンドラインツールです。コマンドは rg で、rg に続けて探したい言葉を入力すると、現在のフォルダとその中のすべてを検索します。初期設定では .gitignore に書かれたファイル、隠しファイル、バイナリファイルを飛ばすので、コードのプロジェクトでは必要な結果だけが表示されます。ripgrep は Andrew Gallant が開発し、MIT ライセンスと Unlicense のデュアルライセンスで公開されています。
ripgrep は Apple シリコン搭載 Mac と Intel Mac のターミナルで動作し、Homebrew(brew install ripgrep)か MacPorts でインストールできます。GitHub ページのベンチマークでは、grep、git grep、The Silver Searcher などの同種のツールより速いことが多く、しかも常に Unicode に対応しています。Visual Studio Code をはじめ、多くのコードエディタが検索に ripgrep を使っています。
主な機能
ripgrep は grep のように使えますが、コードの検索向けに作られています。
- 標準で再帰的に検索:現在のフォルダと、その中のすべてのフォルダを検索します。
- 自動フィルタ:.gitignore の対象、隠しファイル、バイナリファイルを飛ばします。rg -uuu でオフにできます。
- ファイルの種類:rg -tpy で Python ファイルだけを検索するなど、種類を絞ったり除外したりできます。
- おなじみのオプション:前後の行の表示、複数のパターン、一致箇所の色分け、完全な Unicode 対応。
- PCRE2:-P で正規表現エンジンを PCRE2 に切り替え、先読み・後読みや後方参照を使えます。
- 文字コード:UTF-16、Latin-1、Shift_JIS などの文字コードのファイルも検索できます。
- 圧縮ファイル:-z で gzip、xz、bzip2、zstd などの圧縮ファイルの中も検索できます。
- 置換:一致した内容に応じて出力を書き換えられます。
バージョン 15.2.0 の新機能
ripgrep 15.2.0 では、gitignore の照合に関する不具合がいくつか修正され、大きなフォルダの検索が速くなりました。
- 非常に多くのファイルがある場合のフォルダの走査を高速化
- GIT_CONFIG_GLOBAL と GIT_CONFIG_SYSTEM の設定を尊重するように
- gitignore の照合に関する複数の不具合を修正
- musl を使う Arm 版 Linux 向けのビルド済みプログラムを追加
ripgrep のよくある質問
ripgrep は無料ですか?
はい。ripgrep は無料のオープンソースソフトで、MIT ライセンスと Unlicense のデュアルライセンスです。どちらのライセンスでも利用できます。
Mac に ripgrep をインストールするには?
Homebrew ならターミナルで brew install ripgrep、MacPorts なら sudo port install ripgrep を実行します。Apple シリコン搭載 Mac 用と Intel Mac 用のビルド済みプログラムも GitHub のリリースページにあります。
ripgrep のコマンドが rg なのはなぜですか?
rg は ripgrep の短いコマンド名です。たとえば rg TODO と入力すると、現在のフォルダとそのサブフォルダから TODO という言葉を探します。
ripgrep で一部のファイルのテキストが見つからないのはなぜですか?
初期設定では、.gitignore、.ignore、.rgignore に書かれたファイル、隠しファイル、バイナリファイルを飛ばすためです。すべてを検索するには rg -uuu を使います。
ripgrep で特定の種類のファイルだけを検索するには?
-t に続けて種類を指定します。たとえば Python ファイルなら rg -tpy foo です。-T を使うと、rg -Tjs foo のように種類を除外できます。rg --type-list で既知の種類の一覧が表示されます。
ripgrep は grep より速いのですか?
ripgrep の GitHub ページのベンチマークでは、とくにコードのフォルダを検索する場合に grep などの同種のツールより速いことが多く、しかも常に Unicode に対応しています。
ripgrep で grep を完全に置き換えられますか?
ほとんどの検索なら置き換えられます。ripgrep には grep の機能の大半があります。ただし、grep のふるまいをそのまま前提にしたスクリプトすべての代わりになるわけではないことが、FAQ で説明されています。
ripgrep は圧縮ファイルの中も検索できますか?
はい。-z を付けると、gzip、bzip2、xz、lz4、lzma、brotli、zstd で圧縮されたファイルの中を検索します。
ripgrep を使っているコードエディタは?
いくつかのエディタがファイル検索に ripgrep を使っています。たとえば Visual Studio Code の「フォルダーを指定して検索」は ripgrep で動いています。
ripgrep.FULLMAC.app の ripgrep のダウンロードはどこから提供されていますか?
ダウンロードボタンは、インストール手順とリリースが載っている ripgrep の公式 GitHub ページ https://github.com/BurntSushi/ripgrep につながっています。ripgrep.FULLMAC.app がツールを改変したり再パッケージしたりすることはありません。
似ているアプリ
- tmuxtmux は、無料でオープンソースのターミナルマルチプレクサです。1 つのターミナルの中で複数のプログラムを、ウインドウや横に並んだペインに分けて動かし、キーボードで切り替えられます。いちばん便利なのはセッションです。セッションからデタッチしても中身はすべて動き続け、ターミナルを閉じたり SSH 接続が切れたりしても大丈夫です。あとでアタッチし直せば、中断したところから続けられます。tmux は Nicholas Marriott とコントリビュータが開発し、ISC ライセンスで公開されています。開発ツール
VigilVigil は、コーディングエージェントをチームとして動かすための、無料でオープンソースの Mac ネイティブターミナルです。複数のエージェントのウィンドウ間で自分でメッセージをコピーする代わりに、ルートのマネージャーエージェントにタスクを渡すと、マネージャーが自分のワーカーエージェントやサブマネージャーを起動します。詳細はツリーを下へ流れ、結果は要約としてマネージャーへ戻るので、マネージャーのコンテキストは軽く保たれます。ライブのノードツリーでチーム全体を一度に見渡せ、各ノードはエージェント自身のターミナル画面をそのまま保つため、どのノードでも開いて直接操作を引き継げます。開発ツール
SwitchShuttleSwitchShuttle は、よく使うターミナルコマンドをワンクリックやキーボードショートカットで実行できる Mac のメニューバーアプリです。コマンドを階層化したサブメニューに整理し、それぞれにグローバルホットキーと絵文字アイコンを割り当てれば、ターミナルを開いて入力しなくても、どこからでも実行できます。iTerm、Terminal、Warp、Alacritty、Hyper などのターミナルに対応し、各コマンドは現在のウィンドウ、新しいタブ、新しいウィンドウのいずれかで実行できます。開発ツール
tty7tty7 は Rust で書かれた GPU レンダリングのターミナルで、Zed の gpui と Alacritty のターミナルコアをもとに作られています。シェルとペインを持つのはウィンドウではなくバックグラウンドのサーバーなので、アプリを終了してもシェルは tmux なしで動き続けます。再起動後は、レイアウト、画面、対応エージェントの会話が元に戻ります。開発ツール
TabbyTabby(旧称 Terminus)は、SSH、Telnet、シリアル通信のクライアントとしても使える、細かく設定できるターミナルエミュレータです。タブと分割ペインを備えたローカルのターミナル、サーバーの接続マネージャ、ルーターやマイコンなどの機器向けのシリアルターミナルを、1 つのアプリでまかなえます。SSH のパスワードや鍵は暗号化されたボルトに保管でき、SSH 経由でファイルを転送でき、テーマやプラグインで見た目や機能を変えられます。Tabby は Eugene Pankov が開発しており、Mac、Windows、Linux で動作します。開発ツール
kittykitty は、GPU でテキストを描画する高速で高機能なターミナルエミュレータです。スクロールや大量の出力もなめらかに表示されます。タブと分割ウインドウを備え、複数のレイアウトが組み込まれているほか、トゥルーカラー、合字、絵文字に対応し、ターミナルの中に直接画像を表示する独自のグラフィックスプロトコルも持っています。スクリプトやコマンドラインから操作でき、kitten と呼ばれる小さなプログラムで機能を拡張できます。設定を引き継いだ SSH、ファイルの左右比較、Unicode 文字の入力などに使えます。kitty は calibre の開発者でもある Kovid Goyal が作っています。開発ツール
FULLMAC.app はこのアプリをホストしていません。ダウンロードボタンは開発元のページにリンクしています。