はじめに
長らく仕事でPCを使用していると、膨大な数のディレクトリやファイルを管理しないといけなくなる。エイリアスやショートカットを駆使しても徐々に煩雑さは増していく。しかし、ターミナル上で動作するYaziを使えば、非常に軽快にPC内を移動し、素早く目的のファイルまでたどり着くことができる。本稿ではそんな神ツールYaziを紹介する。
Yaziとは
Yaziとは、ターミナル上で動作するファイルマネージャーである。簡単に言うと、Macで言うところのFinder、Windowsでいうところのエクスプローラーである。ちなみに中国語でアヒルを意味するらしい。
↑Yaziの画面例
- プレビュー画像を表示できる
- 通常エンジニアが使うような高機能な検索が使える
- キーボードで様々な操作ができる(ファイル作成、コマンド、コピペなど)
と言う点で非常に優秀だ。キーボード操作はすぐに慣れる。:
でコマンドを打つことができるので、:open .
でFinderで開いたり、:code .
でVSCodeで開いたり、様々な動きができて柔軟性が確保されている。
更にMacの場合、デフォルトのFinderには.DS_Store
という隠しファイルが量産されたり、NFD問題と呼ばれるファイル名の問題があったりするので、それを回避できるメリットが大きい(本記事では触れないので興味があれば調べるべし)。
特に便利な機能:Zoxide
Z
で起動できる。最近訪れたディレクトリから検索して移動できる。95%くらいの率でこれで事足りる。
Yaziのセットアップ
私の環境はMacであるので、Macのセットアップの手順を記載する(Homebrew使用)。Windowsでも大筋は同じと思われる。
インストール
下記コマンドでYaziと他の依存関係をまとめてインストールする。
brew install yazi ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick
Yaziは単独でも使用可能だが、プレビュー機能や検索機能は他のCLIツールに依存する。逆に言うと、CLIに不慣れでも強力なCLIツールの恩恵を受けることができるということでもある。
ツール名 | Yaziでの主な機能 |
---|---|
ffmpeg | 動画・音声ファイルのプレビュー |
sevenzip | 7z形式のファイル圧縮・解凍・プレビュー |
jq | JSONファイルのプレビュー |
poppler | PDFファイルのプレビュー |
fd | ファイル検索機能の強化 |
ripgrep | ファイル内容の高速検索 |
fzf | 高速なファイル・ディレクトリジャンプ、履歴検索 |
zoxide | 頻繁にアクセスするディレクトリへの高速移動(fzfが必要) |
resvg | SVGファイルのプレビュー |
imagemagick | 各種画像フォーマットのプレビュー (特に大きい・複雑なもの) |
不要なものは入れなくても構わないが、とりあえず全部入れておいて損はない。
Ghosttyを使用する
さらに、nerd-fontsというフォント&アイコンパッチの使用が推奨されている。インストールしてターミナルに設定をするときれいなアイコンが表示される。しかし、Mac/Linuxユーザーであればターミナルの代わりにGhosttyを使用すればデフォルトでnerd-fontsに対応しているので、特に設定は不要である。
↑デフォルトのターミナル(左)とGhostty(右)の比較
※Starshipというシェルプロンプトを併用している
起動時の設定
ターミナルで下記を実行すると起動できる。
yazi
ただし、シェルの設定にシェルラッパーを設定することで、y
だけで起動できてかつYaziを終了した際にその位置にターミナルのディレクトリを移動することができる。Zshの場合は.zshrc
に下記の様にシェルラッパーを定義する。
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
この方法は公式が推奨している。詳細はQuick Start | Yaziを参照。
その他の設定
tiffのプレビューをする
私は職業上tiffファイルを使用しないといけないことがある。tiffファイルのプレビューを有効化しようと思うと.config/yazi/yazi.toml
に下記のように記載する必要がある(imagemagickが必要)。
[plugin]
prepend_previewers = [
{ mime = "image/tiff", run = "magick" },
]
参考
デフォルトのエディターをmicroに変更する
Yaziの中ではVimというエディターを使用してその場でテキストファイルを作成したり編集することができる。これも非常に便利な機能の1つである。ただVimは若干エンジニア向けなので、直感的操作ができるターミナルエディターのmicroをインストールして使用できるようにしてみる。
インストール
brew install micro
.config/yazi/yazi.toml
に下記の様に追記する。
[opener]
edit = [
{ run = 'micro "$@"', block = true, for = "unix" },
]
プラグイン
Yazi用のプラグインが色々あるようだ。今後必要であれば追加していこう。
おわりに
Yaziは高いカスタマイズ性を持ちながらもそのままの設定でも便利に使用できる。Zoxideによる高速移動、強力な検索機能、そして豊富なプレビュー機能により、日々のファイル操作が劇的に改善される。これを機にFinderからは卒業し、キーボード中心の快適なファイル管理を行っていこう。