もた日記

くだらないことを真面目にやる

Linuxメモ : Rust製のbrootでディレクトリツリーを探索

broot

github.com

Rust製のbrootを使うとディレクトリツリー探索することができ、検索結果をエディタで開くなどの操作ができる。

f:id:wonder-wall:20200413195035p:plain


インストール

README.mdのインストール方法によるとバイナリのダウンロードやcargoでインストールできる。

$ cargo install broot

これでbrootコマンドが使えるようになるが、brootで検索したディレクトリにcdできるようにするためにはbroot --installを実行する。

$ broot --install
You requested a clean (re)install.
Removing /home/vagrant/.config/broot/launcher/refused.
Writing br shell function in /home/vagrant/.local/share/broot/launcher/bash/1.
Creating link from /home/vagrant/.config/broot/launcher/bash/br to /home/vagrant/.local/share/broot/launcher/bash/1.
/home/vagrant/.bashrc successfully patched, you can make the function immediately available with
source /home/vagrant/.bashrc
/home/vagrant/.bash_profile successfully patched, you can make the function immediately available with
source /home/vagrant/.bash_profile
/home/vagrant/.zshrc successfully patched, you can make the function immediately available with
source /home/vagrant/.zshrc

The br function has been installed.
You may have to restart your shell or source your shell init files.
Afterwards, you should start broot with br in order to use its full power.

インストールが成功するとbrbrootコマンドが実行できるようになる。
ヘルプメッセージ。

$  br --help
broot 0.13.5
dystroy <denys.seguret@gmail.com>
A tree explorer and a customizable launcher

USAGE:
    broot [FLAGS] [OPTIONS] [root]

FLAGS:
    -d, --dates                 Show the last modified date of files and directories
    -D, --no-dates              Don't show last modified date
    -f, --only-folders          Only show folders
    -F, --no-only-folders       Show folders and files alike
    -g, --show-git-info         Show git statuses on files and stats on repo
    -G, --no-show-git-info      Don't show git statuses on files
    -h, --hidden                Show hidden files
    -H, --no-hidden             Don't show hidden files
    -i, --show-gitignored       Show files which should be ignored according to git
    -I, --no-show-gitignored    Don't show gitignored files
    -p, --permissions           Show permissions, with owner and group
    -P, --no-permissions        Don't show permissions
    -s, --sizes                 Show the size of files and directories
    -S, --no-sizes              Don't show sizes
    -t, --trim-root             Trim the root too and don't show a scrollbar
    -T, --no-trim-root          Don't trim the root level, show a scrollbar
        --install               Install or reinstall the br shell function
        --no-style              Whether to remove all style and colors
        --help                  Prints help information
    -V, --version               Prints version information

OPTIONS:
        --outcmd <cmd-export-path>        Where to write the produced cmd (if any)
    -c, --cmd <commands>                  Semicolon separated commands to execute
        --conf <conf>                     Semicolon separated paths to specific config files
        --height <height>                 Height (if you don't want to fill the screen or for file export)
    -o, --out <file-export-path>          Where to write the produced path (if any)
        --set-install-state <state>       Set the installation state (for use in install script) [possible values:
                                          undefined, refused, installed]
        --print-shell-function <shell>    Print to stdout the br function for a given shell

ARGS:
    <root>    sets the root directory


使い方

brに続けてディレクトリツリーを表示したいディレクトリを指定する。引数を指定しない場合はカレントディレクトリが表示される。
brootの画面では, で行移動、ディレクトリに対してEnterで子ディレクトリの展開ができる。

f:id:wonder-wall:20200413195018p:plain

また、検索文字列を入力することができディレクトリ、ファイルに対してインクリメンタルサーチができる。

f:id:wonder-wall:20200413195035p:plain

そして、検索結果のファイルを選択した状態で:eを実行するとエディタで開くことができる。
:eはエディタで開く操作だが、次で説明するように他にもいろいろな操作ができる。

f:id:wonder-wall:20200413195048p:plain

実行可能な操作

実行可能な操作は?キーを押して表示されるヘルプで確認できる。
例えば、:eでファイルを編集できるし、:viewでページャで開ける。
また、:toggle_filesでディレクトリのみ表示に切り替え(コマンドラインオプションだと-f)などオプション切り替えもできる。

f:id:wonder-wall:20200413194956p:plain

パーミッション、更新日時表示

-pオプションでパーミッション、-dオプションで更新日時を表示できる。

f:id:wonder-wall:20200413195101p:plain

サイズ表示

-sオプションでどのディレクトリ、ファイルの容量が多いかを確認できる。

f:id:wonder-wall:20200413195115p:plain

Gitステータス表示

-gオプションでGitステータスを表示できる。

f:id:wonder-wall:20200413202912p:plain