broot について
broot はディレクトリ階層の素早いナビゲーションとファイルプレビューを実現します。ファジー検索、正規表現フィルタリング、ファイル内容のプレビュー、ナビゲーションビューからの外部コマンド実行に対応しています。
主な機能
- 01ファジー検索または正規表現でディレクトリとファイルを素早く検索
- 02ファイル内容、ディレクトリ構造、検索結果をプレビュー
- 03ナビゲーションビューからエディタなどのコマンドを直接起動
- 04ファイルタイプやサイズなどの条件でファイルをフィルタリング・表示
活用シーン
- 01大規模なプロジェクトで必要なファイルやディレクトリを素早く見つける
- 02アクションやエディタでの編集前にファイル内容をプレビュー確認
- 03シェル設定やスクリプトに統合して素早いナビゲーションを実現
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にbroot --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細
Broot
Broot は、ディレクトリの移動、ファイルの検索、コマンドの実行をより快適に行うためのツールです。

完全なドキュメント - インストール手順 - 貢献またはヘルプの取得
ディレクトリの概要を把握する(大きなディレクトリでも)
br -s を実行します

表示されていない項目に気付きましたか?
これによって使いやすくなっています。従来の tree コマンドでは、何ページにもわたる出力が表示されていました。
.gitignore ファイルは適切に処理され、不要なファイルが表示されないようになっています。
gitignore されたファイルや隠しファイルを表示したい場合もあるため、表示を切り替える alti と alth のショートカットにすぐ慣れるでしょう。
(表示しないようにすることもできます。詳しくはドキュメントをご覧ください)。
ディレクトリを探してから、そこに cd する
数文字入力します

altenter を押すと、目的の場所でターミナルに戻ります。
この方法なら、場所を正確に覚えていなくても、最小限のキー入力でディレクトリに移動できます。
Broot は高速で、処理を妨げません(キーを押すと、現在の検索が中断されて新しい検索が開始されます)。
特に便利なキーは次のとおりです。
- 探している項目の文字
- ルート行で enter を押すと、親ディレクトリに移動します(broot 内にとどまります)
- enter を押すと、ディレクトリにフォーカスします(broot 内にとどまります)
- esc を押すと、前の状態に戻るか、検索をクリアします
- 選択項目の移動には ↓ と ↑ を使用できます
- altenter を押すと、選択したディレクトリに
cdしてシェルに戻ります - alth を押すと、隠しファイル(名前がドットで始まるファイル)の表示を切り替えます
- alti を押すと、gitignore されたファイルの表示を切り替えます
- 終了するだけなら
:q(ctrlq を使うこともできます)
検索中もファイル階層を見失いません

Broot は最も関連性の高いファイルを選択しようとします。tab キーまたは矢印キーを使って、別の一致項目に移動することもできます。
正規表現で検索することもできます。その場合は、パターンの前に / を付けてください。
また、ほかの種類の検索もあります。たとえば、ファイルの内容を検索するには、c/ から始めます。

論理演算子を適用したり、パターンを組み合わせたりすることもできます。たとえば、JSON ファイル以外のすべてのファイルから test を検索するには !/json$/&c/test、ファイル名とファイルの内容の両方から carg を検索するには carg|c/carg とします。
目的のファイルを選択したら、次の操作ができます。
- enter キーを押す(またはダブルクリックする)と、システムの既定のプログラムで開きます
- altenter キーを押すと、システムの既定のプログラムで開いて broot を終了します
- ctrl→ キー(または alt→ キー macOS の場合)を押すとプレビューできます(もう一度押すと、プレビュー内に入ります)
- 動詞を入力します。たとえば、
:eを入力すると、お好みのエディター(ターミナル上で動作するエディターも可)でファイルを開きます
ファイルを操作する
broot を使わない場合、ファイルを手探りで移動することがよくあります。先に ls を何度か実行し、ファイルを操作してから、必要に応じて確認します。
ファイル階層を表示したまま操作することもできます。

移動、コピー、rm、mkdir は組み込み機能で、独自のショートカットも追加できます。
こちらは chmod です。

パネルでファイルを管理する
ディレクトリを選択した状態で ctrl→ を押すと、別のパネルが開きます(さらにパネルを開いたり、ctrl← と ctrl→ でパネル間を移動したりできます)。

(はい、色は完全にカスタマイズできます)
たとえば、パネル間で項目をコピーしたり移動したりできます。

必要であれば、:copy_to_panel を F5 に、:move_to_panel を F6 に割り当てて、Norton Commander 風に操作できます。
ファイルをプレビューする
ファイルを選択した状態で ctrl→ を押すと、プレビューパネルが表示されます。


プレビューパネルは、ツリーパネルでの選択と同期します。
ターミナルが Kitty のグラフィックスプロトコルに対応している場合、Broot は高解像度で画像を表示します (対応ターミナル:Kitty、WezTerm)。

ファイルに標準コマンドや独自コマンドを適用する

数回キーを押して編集したいファイルを見つけ、:e と入力してから enter を押すだけです。
動詞を追加したり、既存の動詞を設定したりできます。ドキュメントをご覧ください。
また、ctrl の組み合わせやファンクションキーなどのショートカットを追加できます。
複数のファイルにコマンドを適用する
ファイルをステージングエリアに追加してから、すべてのファイルに任意のコマンドを実行します。

ls(およびその派生ツール)を置き換える:
サイズ、日付、権限を表示するには、br -sdp を実行すると、次のように表示されます。

broot の使用中に、数回キーを押すだけでオプションを切り替えることもできます。
たとえば、broot の中で -sdp と入力できます。
または、alth を押すと、隠しファイルが表示されます。
並べ替えて、容量を確認する:
--sort-by-size または --sort-by-date を指定して broot を起動すると、並べ替えができます。または broot 内でスペースを入力し、続けて sd を入力して enter を押すと、:sort_by_date モードに切り替わります。
並べ替えでは、ディレクトリの内容全体が考慮されます。そのため、月曜日の朝に最も最近変更されたファイルを見つけたい場合は、br --sort-by-date ~ を起動してください。
--whale-spotting オプション(またはそのショートカット -w)を指定して broot を起動すると、「容量の大きなファイルやフォルダーを探す」ナビゲーションに特化したモードになり、容量を占めているファイルやフォルダーを簡単に特定できます。
サイズ、日付、ファイル数はバックグラウンドで計算されるため、ナビゲーション中に計算の完了を待つ必要はありません。

フィルタリングや、ファイルやディレクトリの削除・オープンといった、broot のツールもすべて引き続き使えます。
:fs を実行すると、すべてのファイルシステムの使用状況を確認できるため、容量がいっぱいのファイルシステムの整理に集中できます。

git のステータスを確認する:
:gf を使うと、ファイルのステータス(新規ファイルや変更されたファイルなど)、現在のブランチ名、上流ブランチより何コミット進んでいるか(↑)または遅れているか(↓)、変更統計が表示されます。
文字はファイルの状態を表します。N は未追跡、A はステージ済みの追加、S はステージ済みの変更、M は作業ツリーでの変更、R はステージ済みの名前変更、C は競合、I は無視、? はその他の変更(たとえば、シンボリックリンクに置き換えられたファイル)です。

git status コマンドで表示されるファイル だけ を確認したい場合は、:gs を実行してください。

そこから、選択したファイルを簡単に編集したり、差分を表示したり、元に戻したりできます。
ブログ:コミット前の差分確認に broot と meld を使う
さらに詳しく
インストール方法と使い方については、Broot のウェブサイト をご覧ください。