- 技術 💻
yaziとは?使い方とキー早見表|ターミナルのファイルマネージャー
結論
yaziとは、Rust で書かれたターミナル用のファイルマネージャーです。キーボードだけでフォルダーを移動し、画像・PDF・動画・コードを横に表示しながら、コピー・移動・削除・一括リネームができます。読み込みを裏で進める作り(非同期 I/O)なので、ファイルの多いフォルダーでも画面が固まりにくいのが特徴です。
この記事でわかること
- Mac・Windows・Linux へのインストールと、起動して終了するまでの最初の5分
- 既定のキー割り当て110個から選んだ早見表と、yazi.toml・keymap.toml の書き方
- プレビューが出ない・画像が出ない・fzf の版が足りないなど、Ubuntu 24.04 で依存ツールを調べて分かったつまずき
ターミナルでの作業は ls と cd の繰り返しになりがちです。yazi は、その「見る・移動する・選ぶ」を1つの画面にまとめる道具です。画面は3列で、左が1つ上のフォルダー、真ん中が今いるフォルダー、右がカーソルの当たっているファイルの中身です。名前は中国語で「アヒル」を意味します(公式 README)。
flowchart TD
A[yazi で起動] --> B[hjkl で移動]
B --> C[右の列で中身を見る]
C --> D[Space で選ぶ]
D --> E[y x p / d / r]
E --> F[q で終了]
よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| yaziとは | Rust 製のターミナル用ファイルマネージャー。コマンドは yazi と ya の2つ | yaziとは |
| yazi のインストール | Mac は brew install yazi、Windows は winget install sxyazi.yazi、Linux は各ディストリのパッケージか snap |
yaziのインストール方法 |
| yazi の使い方(起動と終了) | yazi で起動、q で終了、Q はフォルダーを移らずに終了 |
最初の5分 |
| キー操作 | hjkl で移動、Space で選択、y・x・p でコピー・切り取り・貼り付け、F1 でヘルプ | キー操作早見表 |
| 終了後にそのフォルダーへ移りたい | シェルラッパー(関数 y)を .bashrc などに書く |
シェルラッパー |
| 画像が表示されない | 端末が画像の仕組みに対応しているかを見る。tmux は allow-passthrough を on にする | 画像が表示されないとき |
| 設定ファイルの場所 | Linux・Mac は ~/.config/yazi/、Windows は %AppData%\yazi\config\ |
設定ファイル |
| ranger との違い | yazi は Rust 製で非同期。設定は TOML、拡張は Lua。ranger は Python 製 | ranger・lf・nnnとの比較 |
確認環境:Ubuntu 24.04.5 LTS(2 CPU・メモリ 8GB)。yazi 本体は、crates.io の yazi-fm・yazi-cli 26.5.6 を cargo 1.97.0 でビルドしようとしましたが、依存の取得だけで作業場所の上限(300MB)を超えたため止め、その計測値を載せています。PyPI の非公式パッケージ yazi-bin 26.9.1 は取得と中身の確認までで、この環境では実行の許可が得られず起動していません。GitHub のリリース一覧も取得できませんでした。そのためキー割り当てと設定は、取得したソースの既定設定ファイル(keymap-default.toml・yazi-default.toml)とプレビュー用 Lua プラグインの実物から読み取り、yazi が裏で呼ぶコマンド(file 5.45・jq 1.7・pdftoppm 24.02.0・ffmpeg 6.1.1・ImageMagick 6.9.12-98)は同じ引数で実行しました。tmux 3.4 は作業用のソケットで起動し、ranger 1.9.3・nnn 4.9・lf 31 は Ubuntu の .deb を作業場所に展開して確かめています。画面の見え方・インストールのコマンド・画像表示の対応端末は公式ドキュメント(yazi-rs.github.io)で確かめた範囲です(確認日 2026年10月29日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「yaziとは?使い方とキー早見表|ターミナルのファイルマネージャー」
yaziとは(ターミナルで動くファイルマネージャー)
この節では、yazi が何をする道具で、どんな部品からできているのかが分かります。
yazi は、ターミナルの中でエクスプローラーや Finder の役をする TUI(文字で描く画面)のアプリです。マウスでも操作できますが、基本は Vim に似たキー(h・j・k・l)で動かします。公式は「非同期 I/O に基づく、速いターミナルのファイルマネージャー」と説明していて、ファイル一覧の読み込みやプレビュー作りを裏で進めるため、読み込み中でもカーソルを動かせます。
入れると、コマンドが2つ使えるようになります。
| コマンド | 役割 | 主な使い方 |
|---|---|---|
yazi |
ファイルマネージャーの本体 | yazi・yazi ~/work・yazi --clear-cache |
ya |
プラグインとテーマの管理、動いている yazi への命令送信 | ya pkg add・ya pkg upgrade・ya emit |
ソースの args.rs では、yazi の引数は開く場所(最大9つ)・--cwd-file・--chooser-file・--clear-cache・--debug など、ya のサブコマンドは emit・emit-to・exec・pkg・pub・pub-to・sub の7つでした。
できることと、裏で使う外部のコマンドです。外部のコマンドが無くても起動はしますが、その機能だけが使えません。
| できること | 既定のキー | 裏で使うもの |
|---|---|---|
| ファイルの種類の判定 | (自動) | file(必須) |
| コード・テキストのプレビュー(色付き) | (自動) | 本体に内蔵 |
| 画像・PDF・動画のプレビュー | (自動) | ImageMagick・pdftoppm(poppler)・ffmpeg |
| 名前で検索・中身で検索 | s・S |
fd・ripgrep |
| あいまい検索で飛ぶ・よく行く場所へ飛ぶ | z・Z |
fzf・zoxide |
| 圧縮ファイルの中身を見る・展開 | (自動) | 7-Zip |
| 一括リネーム | 複数選んで r |
テキストエディター($EDITOR) |
| タブ・タスク管理・プラグイン | t t・w |
本体と Lua プラグイン |
ls と cd で移動する
中身を見るたびに ls・cat・less を打つ
ファイル名を正確に打つ必要がある
スクリプトにそのまま書ける
yazi で移動する
カーソルを置くだけで右に中身が出る
名前を打たずに選んでコピー・削除できる
繰り返す作業はシェルに戻して書く
2026年10月29日時点で、公式ドキュメントは 26.9.1 が対象、crates.io の yazi-fm・yazi-cli は 26.5.6 でした。この記事のキー割り当ては 26.5.6 の既定ファイルから読んでいます。
最初の5分:yaziを入れて起動・終了するまで
この節では、yazi を入れてから、起動・移動・終了までの最短の流れが分かります。
最初は「入れる → 起動 → hjkl で動く → q で終わる」の4つだけ覚えます。コピーや検索は、そのあとで足していけば困りません。
入れる
Mac は brew install yazi、Windows は winget install sxyazi.yazi、Ubuntu は sudo snap install yazi --classic が手早い。プレビュー用のツールは後から足せる。
版を確かめる
yazi --version と ya --version。command not found なら、入れた場所に PATH が通っているかを見る。
起動する
yazi で今のフォルダー、yazi ~/Downloads で指定したフォルダーが開く。左・真ん中・右の3列が出る。
動いてみる
j・k で上下、l でフォルダーに入る、h で1つ上に戻る。矢印キーでも同じ。Enter でファイルを開く。
終了する
q で終了。ただし、そのままではシェルの場所は起動前のまま。終了した場所へ移るにはシェルラッパーを入れる。
右の列には、フォルダーならその中身の一覧、テキストなら色付きの本文、画像は対応した端末なら画像そのものが出ます。迷ったら F1 で今使えるキーの一覧を開きます。
yaziのインストール方法(Mac・Windows・Linux)
この節では、OS ごとの yazi の入れ方と、ソースからビルドするときにかかる容量が分かります。
まずは OS のパッケージマネージャーで入れるのが早道です。公式のインストールページには20通り以上の方法が載っています。よく使われるものを抜き出しました(コマンドは公式ページのとおり)。
| OS・方法 | コマンド | 補足 |
|---|---|---|
| macOS(Homebrew) | brew install yazi ffmpeg-full sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick-full font-symbols-only-nerd-font |
公式はこのあと brew link ffmpeg-full imagemagick-full -f --overwrite も案内 |
| Windows(WinGet) | winget install sxyazi.yazi |
Git for Windows の file.exe を YAZI_FILE_ONE で指定する |
| Windows(Scoop) | scoop install yazi |
依存ツールは別に入れる |
| Arch Linux | sudo pacman -S yazi ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick |
公式リポジトリにある |
| Debian・Ubuntu | sudo apt install yazi(公式の APT リポジトリを追加したあと) |
amd64・arm64。Ubuntu 24.04 の標準リポジトリには無い |
| Snap | sudo snap install yazi --classic |
開発版は --edge |
| Fedora・RHEL 9 以降 | dnf copr enable lihaohong/yazi → dnf install yazi |
公式ではない COPR |
| Rust(cargo) | cargo install --force yazi-build |
yazi-fm と yazi-cli が入る |
Ubuntu 24.04 の標準リポジトリで、yazi と比較相手のファイルマネージャーを引いた結果です。yazi だけ候補が出ません。
$ for p in yazi ranger nnn lf; do printf "%-8s" $p; apt-cache policy $p | grep Candidate; echo; done
yazi
ranger Candidate: 1.9.3-5ubuntu0.24.04.1
nnn Candidate: 4.9-1build2
lf Candidate: 31+ds-1ubuntu0.24.04.3
Ubuntu では、公式の APT リポジトリを追加するか、snap、公式バイナリ(GitHub Releases の GNU 版・musl 版)を使います。PyPI には非公式の yazi-bin もあり、公式のインストールページに pipx install yazi-bin・uv tool install yazi-bin が載っています。取得して中身を見ると、wheel は 16.1MB で、展開すると yazi と ya の2つの実行ファイル(合わせて 37MB)が入っていました。
Windows で入れるときの注意
Windows には、ファイルの種類を判定する file コマンドがありません。公式は、Git for Windows に入っている file.exe を使う方法を勧めていて、YAZI_FILE_ONE 環境変数に Git\usr\bin\file.exe の場所を設定し、ターミナルを開き直します。公式ページは、file を Scoop や Chocolatey で入れることは勧めていません。
ソースからビルドする場合にかかる容量(実測)
ソースからのビルドは、取得だけで 350MB を超えました。2 CPU に合わせて -j2 で cargo install --locked yazi-fm yazi-cli を始めたところ、5秒で 186MB、10秒で 355MB になり、上限に当たったため止めました。
$ cargo install --locked -j2 --root /dev/shm/t188/inst yazi-fm yazi-cli
Updating crates.io index
Downloading crates ...
Downloaded ref-cast v1.0.25
Downloaded schemars v1.2.1
...
Downloaded yazi-runner v26.5.6
Compiling proc-macro2 v1.0.106
Compiling quote v1.0.45
Compiling libc v0.2.186
Compiling syn v2.0.117
(作業場所の上限に当たったため、ここで停止)
$ grep -c Downloaded build.log
522
$ du -sm cargo
351 cargo
このあとにコンパイルの成果物が加わるので、小さなマシンやディスクの少ない環境では、パッケージかバイナリを使うほうが確実です。Rust が 1.95 より前だとビルドは止まります。
yaziの依存ツールとUbuntu 24.04での注意
この節では、yazi が使う外部ツールと、Ubuntu 24.04 の標準パッケージで条件を満たせるかが分かります。
Ubuntu 24.04 の標準パッケージだけでは、fzf・chafa・ImageMagick の3つが公式の最低版に届きません。公式のインストールページの依存一覧と、Ubuntu 24.04 で apt-cache と .deb の中身を調べた結果を並べます。
| ツール | 使う機能 | 公式の条件 | Ubuntu 24.04 の版 |
|---|---|---|---|
| file | 種類の判定(必須) | - | 5.45(入っている) |
| ffmpeg | 動画のサムネイル | - | 6.1.1 |
| 7-Zip | 圧縮ファイルのプレビュー・展開 | 単体版(standalone)でないもの | 7zip 23.01(コマンド名は 7z) |
| jq | JSON のプレビュー | - | 1.7 |
| poppler(pdftoppm) | PDF のプレビュー | - | 24.02.0 |
| fd | 名前で検索(s) | コマンド名 fd | fd-find 9.0.0(コマンド名は fdfind) |
| ripgrep | 中身で検索(S) | - | 14.1.0 |
| fzf | あいまい検索(z) | 0.53.0 以上 | 0.44.1(足りない) |
| zoxide | よく行く場所へ(Z) | fzf が要る | 0.9.3 |
| resvg | SVG のプレビュー | - | パッケージが無い |
| ImageMagick | フォント・HEIC・JPEG XL | 7.1.1 以上 | 6.9.12-98(magick コマンドが無い) |
| chafa | 文字で描く画像(最後の手段) | 1.16.0 以上 | 1.14.0(足りない) |
fd は、Debian・Ubuntu では別の同名コマンドとぶつかるため、fdfind という名前で入ります。.deb の中身と、展開した fd の表示です。
$ dpkg -c fd-find_9.0.0-1_amd64.deb | grep bin/
-rwxr-xr-x root/root 3406248 2023-12-31 04:41 ./usr/lib/cargo/bin/fd
lrwxrwxrwx root/root 0 2023-12-31 04:41 ./usr/bin/fdfind -> ../lib/cargo/bin/fd
$ ./usr/lib/cargo/bin/fd --version
fdfind 9.0.0
$ ./usr/bin/fzf --version
0.44.1 (debian)
yazi の s は fd という名前のコマンドを呼ぶので、Ubuntu では PATH の通った場所に fd という名前のリンクを作ります。
mkdir -p ~/.local/bin
ln -s "$(command -v fdfind)" ~/.local/bin/fd
fzf は 0.53.0 未満だと z が正しく動かないため、新しい版を別に入れます。ImageMagick 6.9 系には magick コマンドが無く、フォント・HEIC・JPEG XL のプレビューは動きません(PNG・JPEG は yazi 本体が描くので影響しません)。
yaziの画面の見方とキー操作早見表
この節では、yazi の画面の3列の意味と、既定のキー割り当てのうちよく使うものが分かります。
既定のキー割り当ては、ファイル一覧の画面(mgr)だけで110個あります。既定ファイル keymap-default.toml を Python の tomllib で読み、画面(層)ごとに数えた結果です。
$ python3 check_conf.py conf
== 既定のキー割り当ての数
mgr 110
tasks 12
spot 15
pick 10
input 62
confirm 12
cmp 11
help 8
mgr はファイル一覧、tasks はタスク管理(w)、spot はファイル情報(Tab)、pick は「開くアプリを選ぶ」画面、input は名前の入力欄、confirm は確認の画面、cmp は入力の補完、help はヘルプの画面です。yazi.toml の ratio = [ 1, 4, 3 ] が、左(親フォルダー)・真ん中(今のフォルダー)・右(プレビュー)の幅の比です。
移動と選択
| キー | 動き | 内部のコマンド |
|---|---|---|
j / k(↓ / ↑) | 次 / 前のファイルへ | arrow next / prev |
l / h(→ / ←) | フォルダーに入る / 1つ上へ | enter / leave |
H / L | 前にいた場所へ戻る / 進む | back / forward |
g g / G | 先頭 / 末尾へ | arrow top / bot |
Ctrl+u / Ctrl+d | 半ページ上 / 下 | arrow -50% / 50% |
g h / g c / g d | ホーム / ~/.config / ~/Downloads へ | cd |
g Space | 行き先を入力して移動 | cd --interactive |
Space | 選択を切り替えて次へ | toggle → arrow 1 |
v / V | 範囲選択 / 範囲で選択解除 | visual_mode |
Ctrl+a / Ctrl+r | 全部選ぶ / 選択を反転 | toggle_all |
Esc | 選択・範囲選択・検索をやめる | escape |
ファイル操作
| キー | 動き | 内部のコマンド |
|---|---|---|
Enter / o | 開く | open |
O | 開くアプリを選んで開く | open --interactive |
y / x | コピー / 切り取りの印を付ける | yank / yank --cut |
p / P | 貼り付け / 上書きして貼り付け | paste / paste --force |
Y または X | コピー・切り取りの印を外す | unyank |
d / D | ゴミ箱へ / 完全に削除 | remove / remove --permanently |
a | 作る(末尾を / にするとフォルダー) | create |
r | 名前を変える(複数なら一括) | rename --cursor=before_ext |
- / _ | シンボリックリンク(絶対 / 相対) | link |
c c / c f | パス / ファイル名をコピー | copy path / filename |
; / : | シェルのコマンドを実行(:は終わるまで待つ) | shell |
検索・表示・タブ
| キー | 動き | 内部のコマンド |
|---|---|---|
/ / ?、n / N | 今のフォルダーで名前を探す、次 / 前の一致へ | find |
f | 一覧を絞り込む | filter --smart |
s / S | 下の階層まで名前で / 中身で検索 | search --via=fd / rg |
z / Z | fzf で飛ぶ / zoxide で飛ぶ | plugin fzf / zoxide |
. | 隠しファイルの表示を切り替え | hidden toggle |
, のあと n / s / m | 自然順 / 大きさ / 更新日時で並べる(大文字で逆順) | sort |
m のあと s / p / m | 行の右に大きさ / 権限 / 更新日時を出す | linemode |
K / J | プレビューを上 / 下へ送る | seek -5 / 5 |
Tab | ファイルの詳しい情報 | spot |
t t、1〜9、[ / ] | 新しいタブ、タブの切り替え | tab_create / tab_switch |
w | タスク管理(コピーなどの進み具合) | tasks:show |
q / Q / Ctrl+c | 終了 / 場所を書き出さず終了 / タブを閉じる | quit / close |
並べ替えの「自然順」は、数字を数として比べる並べ方です。ファイル名の文字順(, a)と自然順(, n)の違いを、sort と sort -V で同じファイル名に当てると次のようになります。写真の連番を並べるときは自然順が便利です。
$ ls photos | sort # 文字順
IMG_1.jpg
IMG_10.jpg
IMG_11.jpg
IMG_2.jpg
$ ls photos | sort -V # 自然順
IMG_1.jpg
IMG_2.jpg
IMG_10.jpg
IMG_11.jpg
覚える順番は、次のとおりにすると迷いません。
- 1hjkl・Enter・q移動と開く・終わる。矢印キーでもよい
- 2Space・y・x・p・d選んでコピー・移動・ゴミ箱へ
- 3a・r・.作る・名前を変える・隠しファイル
- 4/・f・s・S探す・絞り込む・下の階層まで検索
- 5g の組み合わせ・z・Zよく行く場所へ一気に飛ぶ
- 6t t・1〜9・wタブと、重いコピーの進み具合
終了したフォルダーへ移動する(シェルラッパー y)
この節では、yazi を閉じたあと、シェルの場所を yazi で最後にいたフォルダーに合わせる方法と、その仕組みが分かります。
yazi を yazi で起動して q で閉じても、シェルの場所は変わりません。yazi はシェルから起動された別のプロセスで、別のプロセスからは親のシェルの場所(カレントディレクトリ)を変えられないためです。そこで公式は、終了時の場所をファイルに書き出させ、シェルの関数がそれを読んで cd する「シェルラッパー」を用意しています。bash・zsh 用は次のとおりです。
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
これを ~/.bashrc か ~/.zshrc に書き、シェルを開き直して y で起動します。fish・Nushell・PowerShell・コマンドプロンプト用の書き方も公式のクイックスタートにあります。.bashrc への書き方と読み込みは、関連記事「Linux alias設定と.bashrcの書き方|おすすめエイリアス50選」で扱っています。
yazi の代わりに「--cwd-file に行き先を書いて終わるだけ」の確認用スクリプトを PATH の先頭に置き、q と Q を再現しました。
$ source wrap.sh; cd /dev/shm/t188
$ echo "before: $PWD"; STUB_KEY=q y demo; echo "after q: $PWD"
before: /dev/shm/t188
[stub] args: demo --cwd-file=/dev/shm/t188/yazi-cwd.ITKRPo
after q: /dev/shm/t188/demo/photos
$ cd /dev/shm/t188; STUB_KEY=Q y demo; echo "after Q: $PWD"
[stub] args: demo --cwd-file=/dev/shm/t188/yazi-cwd.pyBymV
after Q: /dev/shm/t188
# 関数を通さずに起動した場合(ファイルには書かれるが、シェルは動かない)
$ STUB_KEY=q yazi demo --cwd-file=cwd.txt; echo "pwd: $PWD"; cat cwd.txt
pwd: /dev/shm/t188
/dev/shm/t188/demo/photos
q では書き出された場所へ移り、Q では --no-cwd-file の扱いでファイルが空のままなので、元の場所に残りました。一時ファイルが残らないことも確かめました。
yaziのプレビューの仕組み(画像・PDF・動画・JSON)
この節では、yazi がファイルの種類を見分けてプレビューを作る流れと、裏で呼ぶコマンドの実際の速さが分かります。
yazi は、まず file コマンドで MIME タイプ(ファイルの種類の名前)を調べ、yazi.toml の previewers の規則に当てて、使うプラグインを決めます。既定ファイルとプラグインの Lua ソースから読み取った流れです。
flowchart TD
A[カーソルが当たる] --> B[file -bL --mime-type]
B --> C[x- と vnd. を外す]
C --> D{previewers の規則}
D -->|text| E[内蔵の code]
D -->|pdf| F[pdftoppm]
D -->|video| G[ffmpeg]
種類の判定は、プラグイン mime-local.lua が file -bL --mime-type -- パス… を実行して行います。同じコマンドを、自作の見本ファイルに当てた結果です。10ファイルで 0.009 秒でした。
$ file -bL --mime-type -- arc.zip clip.mp4 data.json doc.pdf empty.txt icon.svg img.png note.txt photos run.sh
arc.zip application/zip
clip.mp4 video/mp4
data.json application/json
doc.pdf application/pdf
empty.txt inode/x-empty
icon.svg image/svg+xml
img.png image/png
note.txt text/plain
photos inode/directory
run.sh text/x-shellscript
mime-local.lua は、結果の先頭の x- と vnd. を取り除いてから規則に当てます。そのため inode/x-empty は既定の規則の inode/empty(空のファイル)に、text/x-shellscript は text/*(コードとして色付き表示)に当たります。自分で規則を書くときは、この取り除いたあとの名前で書きます。
プレビューを作るプラグインは、決まった引数で外部のコマンドを呼びます。pdf.lua・video.lua・json.lua に書かれている引数のまま実行し、時間を測りました。
| 種類 | yazi が呼ぶコマンド(要点) | 結果 | 時間 |
|---|---|---|---|
| JSON | jq -b -C --tab . |
色付きで整形 | 0.003秒 |
pdftoppm -f 1 -l 1 -singlefile -jpeg -jpegopt quality=75 |
1ページ目を 37,775 バイトの JPEG に | 0.130秒 | |
| 動画(10秒・1280×720) | ffmpeg … -skip_frame nokey -vframes 1 -q:v 9 と縮小 |
600×338 の JPEG に | 0.091秒 |
| SVG | resvg |
command not found(Ubuntu に無い) | - |
| HEIC・フォント | magick |
command not found(IM 6 系) | - |
| zip | 7zz、無ければ 7z |
この環境には無い | - |
動画の縮小の上限は yazi.toml の max_width = 600・max_height = 900、画質は image_quality = 75 から決まります(ffmpeg の -q:v は 31 - floor(75 × 0.3) で 9)。GPU の無いこの環境では、ffmpeg の -hwaccel auto が次の警告を出しましたが、サムネイルは作られました。
[AVHWDeviceContext @ 0x5582d51324c0] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x5582d51324c0] Could not dynamically load CUDA
[AVHWDeviceContext @ 0x5582d5131240] Instance creation failure: VK_ERROR_INCOMPATIBLE_DRIVER
$ file vid.jpg
vid.jpg: JPEG image data, JFIF standard 1.02, ..., baseline, precision 8, 600x338, components 3
作ったプレビューはキャッシュに保存され、2回目から速く出ます。表示がおかしいときは yazi --clear-cache で消します。
yaziで画像が表示されないとき(端末の対応とtmux)
この節では、画像のプレビューが出る端末・出ない端末の違いと、tmux の中で画像を出す設定が分かります。
画像のプレビューは、端末が画像を描く仕組み(プロトコル)に対応しているかで決まります。yazi は $TERM・$TERM_PROGRAM・$XDG_SESSION_TYPE などから端末を見分けて、使う仕組みを自動で選びます。公式ページの対応表の主なものです。
| 端末 | 画像の仕組み | 補足 |
|---|---|---|
| kitty(0.28.0 以降)・Ghostty | Kitty unicode placeholders | 内蔵 |
| iTerm2・WezTerm・VS Code・Tabby・Warp | Inline images protocol | 内蔵 |
| Konsole | Kitty old protocol | 内蔵 |
| foot・Windows Terminal(v1.22.10352.0 以降) | Sixel | 内蔵 |
| X11・Wayland の上のその他の端末 | ウィンドウシステム | Überzug++ が要る |
| どれにも当たらない | 文字で描く(Unicode のブロック) | Chafa 1.16.0 以上が要る |
ソースの adapters.rs でも、端末ごとに使う仕組みが決められていて、tmux・Apple のターミナル.app・urxvt には何も割り当てられていません。当たる仕組みが無いと、X11・Wayland(Überzug++)、最後に Chafa の順に下がります。GNOME 端末のような VTE 系の端末も、画像の仕組みを持たないため、Überzug++ か Chafa が無いと画像の欄は空になります。
tmux の中で画像を出す設定
tmux は、間に入って端末への命令を自分で解釈するため、画像の命令がそのままでは外の端末に届きません。公式は tmux.conf に次の3行を書き、tmux を再起動するよう案内しています。
set -g allow-passthrough on
set -ga update-environment TERM
set -ga update-environment TERM_PROGRAM
tmux 3.4 を作業用のソケットで起動して確かめると、既定は off で、3行を読み込むと on になり、TERM と TERM_PROGRAM が足されました。yazi のソース(mux.rs)が tmux の中で実行する tmux set -p allow-passthrough on も成功しました。
$ tmux -L t188 -f /dev/null new-session -d -s t188
$ tmux -L t188 show -gv allow-passthrough
off
$ tmux -L t188 set -p -t t188 allow-passthrough on; echo "exit=$?"
exit=0
$ tmux -L t188 source-file tmux-yazi.conf
$ tmux -L t188 show -g allow-passthrough
allow-passthrough on
$ tmux -L t188 show -g update-environment | tail -3
update-environment[7] XAUTHORITY
update-environment[8] TERM
update-environment[9] TERM_PROGRAM
$ tmux -L t188 display -p "#{sixel_support}"
#{sixel_support} は yazi が tmux の Sixel 対応を調べるときに使う値で、Ubuntu の tmux 3.4 では何も返りませんでした。公式ページによると、tmux で Sixel を使うには --enable-sixel を付けてビルドされた tmux が要ります。kitty・Ghostty など Sixel 以外の仕組みの端末なら、passthrough だけで画像が出ます。tmux の基本の使い方と .tmux.conf の書き方は、関連記事「tmuxの使い方|キーバインド早見表とコピペ用.tmux.conf」で扱っています。
Zellij の中では Kitty old protocol と Sixel しか使えず、公式は画像が大事なら Zellij の外で使うよう勧めています。Neovim の :terminal の中も画像の仕組みを持ちません。
端末の見分けを壊さない
export TERM=xterm-256color と決め打ちするyazi は TERM・TERM_PROGRAM で端末を見分ける。公式も誤って上書きしないよう注意している
tmux の設定を変えたあと
update-environment は新しく接続したときに効く。公式も再起動を「重要」としている
yaziのファイル操作・検索・一括リネーム
この節では、コピー・移動・削除・作成と、検索、複数ファイルの名前をエディターでまとめて変える一括リネームの流れが分かります。
yazi のファイル操作は「選ぶ → 印を付ける → 貼る」の順です。Space で選んで y か x、移動先で p。選んでいなければカーソルのファイルが対象です。重いコピーは裏で進み、w で進み具合を見られます。
削除は2種類あり、確認の画面の文言は既定ファイルでは次のとおりです。
| キー | 何が起きるか | 確認の文言 |
|---|---|---|
d | ゴミ箱へ移す(戻せる) | Trash {n} selected file{s}? |
D | 完全に削除(戻せない) | Permanently delete {n} selected file{s}? |
P | 同名があれば上書きして貼る | Overwrite file? |
q(作業中) | 終わっていないタスクがあると確認 | There are unfinished tasks, quit anyway? |
コマンドで同じ操作をするときの cp・mv・rm のオプションは、関連記事「cp・rm・mvコマンドの使い方|オプション早見表とエラーの直し方」で扱っています。
検索の4つの方法
/ は今のフォルダーで一致へカーソルを動かすだけ、f は一覧を一致したものだけに絞ります。s は fd で下の階層まで名前を、S は ripgrep で中身を探して一覧にします(Ctrl+s で中止)。条件を細かく組む・見つけたものにまとめて処理するなら、シェルの find が向いています。関連記事「findコマンドの使い方|目的別逆引き40例と-exec・xargsの違い」で扱っています。
一括リネームの流れ
複数のファイルを選んで r を押すと、名前の一覧がテキストエディターで開き、書き換えて保存すると、その名前に変わります。ソース(bulk_rename.rs)から読み取った流れは次のとおりです。
- 選んだファイルの名前を1行ずつ一時ファイルに書き、yazi.toml の opener の
edit(既定は${EDITOR:-vi})で開く - 保存して閉じると、行の数が元と同じかを確かめる。違えば何もしない
- 変えていない行は除き、「元の名前 -> 新しい名前」の一覧を出して
Continue to rename? (y/N)と聞く - 行き先に同名のファイルがあるものは変えず、最後に失敗の一覧を出す
この判定を写した確認用スクリプトで、写真4枚の名前を sed で書き換えた場合と、うっかり1行消した場合、同名にしてしまった場合を試しました。表示の文言は yazi のソースのままです。
$ cat bulk.txt # yazi がエディターで開くのと同じ形
IMG_1.jpg
IMG_2.jpg
IMG_10.jpg
IMG_11.jpg
$ sed -E 's/IMG_([0-9]+)\.jpg/printf "2026-10_%02d.jpg" \1/e' bulk.txt > bulk_new.txt
$ python3 bulk_check.py bulk.txt bulk_new.txt
IMG_1.jpg -> 2026-10_01.jpg
IMG_2.jpg -> 2026-10_02.jpg
IMG_10.jpg -> 2026-10_10.jpg
IMG_11.jpg -> 2026-10_11.jpg
Continue to rename? (y/N):
$ python3 bulk_check.py bulk.txt bulk_short.txt # 1行消した
Number of new and old file names mismatch (New: 3, Old: 4).
Press <Enter> to exit...
$ python3 bulk_check.py bulk.txt bulk_dup.txt # 既にある名前にした
IMG_2.jpg -> IMG_10.jpg
Continue to rename? (y/N):
Failed: IMG_2.jpg -> IMG_10.jpg: Destination already exists
Vim なら :%s/IMG_/photo_/ のような置換で一気に書き換えられます。行を並べ替えると、ほかのファイルの名前と入れ替わるので、行の順番は変えないのが安全です。エディターが見つからないときは Bulk rename: No text opener found という通知が出ます(ソースの文言)。
yaziの設定ファイル(yazi.toml・keymap.toml・theme.toml)
この節では、設定ファイルの場所と、既定の設定を壊さずに一部だけ変える書き方、キーの割り当てがぶつかっていないかの確かめ方が分かります。
設定ファイルは3つで、どれも「変えたいところだけ」を書けば既定の値に上書きされます。公式の説明では、既定ファイルを丸ごとコピーせず、必要な部分だけ写します。
| ファイル | 書くこと | 置き場所 |
|---|---|---|
| yazi.toml | 表示・並べ方・開くアプリ・プレビューの規則 | Linux・Mac は ~/.config/yazi/、Windows は %AppData%\yazi\config\ |
| keymap.toml | キーの割り当て | |
| theme.toml | 色・アイコン | |
| init.lua | プラグインの初期設定(Lua) | |
| package.toml | ya pkg で入れたプラグインの記録 |
環境変数 YAZI_CONFIG_HOME を設定すると、別の場所の設定で起動できます(例:YAZI_CONFIG_HOME=~/.config/yazi-alt yazi)。設定を試すときに、ふだんの設定を残したまま確かめられます。
yazi.toml の例と打ち間違いの確かめ方
隠しファイルを表示し、自然順で並べ、行の右に大きさを出し、テキストを Neovim で開く例です。わざと show_hidden を show_hiden と打ち間違えています。
[mgr]
ratio = [ 1, 3, 4 ]
sort_by = "natural"
sort_dir_first = true
linemode = "size"
show_hiden = true
[preview]
max_width = 1000
max_height = 1000
[opener]
edit = [
{ run = 'nvim %s', desc = "nvim", block = true, for = "unix" },
]
既定ファイルの項目名と突き合わせる小さなスクリプト(tomllib を使う Python、0.039秒)で確かめると、打ち間違いが見つかりました。
== yazi.toml の確認
[mgr] show_hiden: 既定ファイルに無い項目(打ち間違い?)
既定ファイルにある項目名は、公式の設定ページか、yazi のソースの yazi-config/preset/yazi-default.toml で確かめられます。既定ファイル(26.5.6)では、ファイル一覧の節の名前は [mgr] です。以前の版向けに書かれた設定例を写すときは、節の名前と項目名が手元の版の既定ファイルと同じかを先に見ます。テキストを開くエディターの設定は、Neovim の初期設定とあわせて見直すと迷いません。Neovim そのものの入れ方と init.lua は、関連記事「Neovimとは|インストール・init.lua設定・lazy.nvim・LSP入門」で扱っています。
keymap.toml は prepend_keymap で足す
keymap.toml に keymap = [ ... ] と書くと、既定の割り当てがすべて置き換わります。既定を残したまま足すときは、prepend_keymap(既定より先に当てる)か append_keymap(既定より後に当てる)を使います。
[[mgr.prepend_keymap]]
on = [ "g", "r" ]
run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"'
desc = "Git のルートへ移動"
[[mgr.prepend_keymap]]
on = "!"
run = 'shell "$SHELL" --block'
desc = "ここでシェルを開く"
[[mgr.prepend_keymap]]
on = [ "g", "d" ]
run = "cd ~/work"
desc = "~/work へ移動"
同じスクリプトで既定の割り当てと突き合わせると、g d が既定の「~/Downloads へ移動」を上書きすることが分かりました。知らずにぶつけると既定の動きが消えます。
== mgr で1文字のキーに割り当てが無いもの: beiuABCEFIMRTUW0!@#$%^&*()=+\|'"<>
== 2打鍵の先頭キー: , c g m t
== keymap.toml の確認
'g r': 空いているキー
'!': 空いているキー
'g d': 既定の「Go ~/Downloads」(cd ~/Downloads) より先に当たる=上書き
ファイル一覧の画面で1文字のキーとして空いているのは、小文字では b・e・i・u、大文字では A・B・C・E・F・I・M・R・T・U・W などでした。,・c・g・m・t は2打鍵の先頭に使われているため、1文字のキーとしては割り当てられません。
キーを足す
[mgr] の下に keymap = [ ... ] と自分の分だけ書く[[mgr.prepend_keymap]] で足すkeymap を直接書くと既定の110個が消え、hjkl も効かなくなる
既定ファイルの扱い
丸ごと写すと、版が上がって既定が変わったときに以前の写しが残り続ける
色は theme.toml で変えます。公式の配色の一式「フレーバー(flavor)」から端末に合うものを入れると、文字の色が見分けにくい問題が直ります。
yaziのプラグインとテーマ(ya pkg・init.lua)
この節では、プラグインの入れ方・管理の仕方と、ログの見方が分かります。
プラグインとフレーバーは ya pkg で入れます。公式の CLI ページのコマンドです。
ya pkg add yazi-rs/plugins:git # 公式プラグイン集から git を入れる
ya pkg add owner/my-plugin # GitHub の owner/リポジトリ名で入れる
ya pkg list # 入れたものの一覧
ya pkg upgrade # まとめて更新
ya pkg install # package.toml のとおりに入れ直す
ya pkg delete yazi-rs/plugins:git # 消す
入れたものは ~/.config/yazi/package.toml に、名前・リビジョン(rev)・ハッシュの組で記録されます。rev の頭に = を付けると、その版に固定され、ya pkg upgrade で更新されません。設定フォルダーを Git で管理しておけば、別のマシンでも ya pkg install で同じプラグインがそろいます。
プラグインの本体は ~/.config/yazi/plugins/ に、名前.yazi というフォルダー(入口は main.lua)として置かれます。プラグインの設定は init.lua に Lua で書きます。以前の解説では ya pack というコマンドが使われていますが、26.5.6 の ya のサブコマンドは pkg で、pack はありませんでした。
公式プラグイン集(yazi-rs/plugins)には、Git の状態を出す git、枠線の full-border、Enter で入る・開くを1つにする smart-enter などがあります。Neovim の中から yazi を呼ぶ yazi.nvim もあります。
思いどおりに動かないときは YAZI_LOG=debug yazi で起動すると、~/.local/state/yazi/yazi.log(Windows は %AppData%\yazi\state\yazi.log)にログが残ります。yazi --debug はデバッグ情報を表示します。
ranger・lf・nnnとの比較と選び方
この節では、ほかのターミナルのファイルマネージャーとの違いと、どれを選ぶかの目安が分かります。
yazi・ranger・lf・nnn は、どれも3列か2列のキーボード操作のファイルマネージャーで、違いは作りと設定の方法、軽さです。言語と設定の方法は各公式の説明、版と大きさは Ubuntu 24.04 のパッケージで確かめた値です。
| 項目 | yazi | ranger | lf | nnn |
|---|---|---|---|---|
| 書かれた言語 | Rust | Python | Go | C |
| Ubuntu 24.04 の版 | 標準には無い | 1.9.3 | 31 | 4.9 |
| 大きさ | yazi と ya で 37MB(yazi-bin 26.9.1) | Installed-Size 1,142KB | 本体 3.7MB | 本体 129KB |
| 設定 | TOML と Lua | rc.conf と Python | lfrc(独自の書式) | 環境変数とプラグイン |
| 画像プレビュー | 内蔵(端末の仕組みを自動で選ぶ) | 設定で有効にする | プレビュー用のスクリプトを用意 | プラグインで追加 |
ranger は Python で動くので、Python の版の影響を受けます。Ubuntu 24.04 の ranger 1.9.3 を展開し、この環境の Python 3.13 で起動すると、Python 3.13 で取り除かれた標準モジュール imghdr を読み込もうとして止まりました。Ubuntu 標準の Python 3.12 では起動しています。
$ python3 --version
Python 3.13.18
$ PYTHONPATH=usr/lib/python3/dist-packages python3 usr/bin/ranger --version
File ".../ranger/ext/img_display.py", line 18, in <module>
import imghdr
ModuleNotFoundError: No module named 'imghdr'
$ PYTHONPATH=usr/lib/python3/dist-packages /usr/bin/python3.12 usr/bin/ranger --version
ranger version: ranger 1.9.3
Python version: 3.12.3
$ ./usr/bin/nnn -V
4.9
$ ./usr/bin/lf -version
31+ds
yazi・lf・nnn は1つの実行ファイルで、Python の版に左右されません。目的別の目安です。
| こんなとき | 向くもの | 理由 |
|---|---|---|
| 画像・PDF・動画を見ながら整理したい | yazi | プレビューが内蔵で、端末に合わせて自動で切り替わる |
| ファイルの多いフォルダーをよく開く | yazi・lf・nnn | 読み込み中も操作が止まりにくい・軽い |
| apt だけで入れたい(Ubuntu の標準) | ranger・lf・nnn | 標準リポジトリにある |
| サーバーで最小限に使いたい | nnn | 本体 129KB、依存が少ない |
| Python で細かく拡張したい | ranger | 設定もコマンドも Python で書ける |
| 設定を TOML で読みやすく管理したい | yazi | 3つの TOML と package.toml を Git で管理できる |
入れる前に、次の点を確かめておくと、つまずきが減ります。
- 1file コマンドがあるかWindows は Git for Windows の file.exe を YAZI_FILE_ONE で指定
- 2端末が画像の仕組みに対応しているかkitty・Ghostty・WezTerm・iTerm2・Windows Terminal など
- 3Nerd Font を入れたか無いとアイコンが四角や記号になる
- 4fzf が 0.53.0 以上かUbuntu 24.04 の標準は 0.44.1
- 5fd という名前で呼べるかUbuntu は fdfind。リンクを作る
- 6シェルラッパー y を入れたか終了したフォルダーへ移るのに要る
- 7EDITOR を設定したかテキストを開く・一括リネームで使う
yaziのよくあるエラー・つまずき
この節では、yazi でよく出る症状と、その原因・直し方が分かります。
yazi のつまずきの多くは、yazi 本体ではなく、端末か外部のツールの側にあります。エラーの文言は、公式の FAQ と、yazi のソース・プラグインに書かれているものです。
| 症状 | 表示・原文 | 原因 | 直し方 |
|---|---|---|---|
| 終了してもフォルダーが変わらない | (表示なし) | yazi を直接起動している | シェルラッパー y で起動する |
| 開けない・プレビューが出ない | (種類が判定されない) | file コマンドが無い | file を入れる。Windows は YAZI_FILE_ONE |
| テキスト・一括リネームでエディターが開かない | No text opener found(一括リネーム時) | $EDITOR が未設定、edit の opener が無い | export EDITOR=vim などを .bashrc に書く |
| アイコンが四角や記号になる | (文字化け) | 端末のフォントが Nerd Font でない | Symbols Nerd Font を代替フォントに設定 |
| 画像の欄が空 | (表示なし) | 端末が画像の仕組みに非対応、tmux の passthrough が off | 対応端末を使う、tmux.conf に allow-passthrough on |
| PDF のプレビューが出ない | Failed to start `pdftoppm` | poppler が無い | poppler-utils を入れる |
| zip の中身が見えない | Failed to start either `7zz` or `7z`. Do you have 7-zip installed? | 7-Zip が無い | 7zip を入れる |
| s で検索できない | (fd が見つからない) | Ubuntu では fdfind という名前 | ~/.local/bin/fd へリンク |
| z が動かない | (fzf のエラー) | fzf が 0.53.0 未満 | 新しい fzf を入れる |
| 起動時に応答待ちのエラー | (端末の応答がタイムアウトした旨) | 端末が問い合わせ(DA1・DSR)に間に合わない | tmux を更新、passthrough を on、SSH の遅延を疑う |
| 一括リネームが止まる | Number of new and old file names mismatch | エディターで行を消した・足した | 行の数を元と同じにする |
| キーが全部効かない | (hjkl も無反応) | keymap.toml で keymap を直接書いた | prepend_keymap に書き換える |
起動時の応答待ちのエラーは、公式 FAQ によると、ほかに問題が無ければ無視してよいものです。tmux なら更新・passthrough の有効化・設定を1つずつ戻す順で原因を探します。
よくある質問
この節では、yazi についてよく聞かれることへの答えが分かります。
Q. yazi は無料ですか? A. 無料で使えるオープンソースのソフトウェアです。PyPI の yazi-bin に同梱されたライセンスは MIT でした。
Q. Windows でも使えますか? A. 使えます。WinGet か Scoop で入れ、Git for Windows の file.exe を YAZI_FILE_ONE で指定します。画像のプレビューは Windows Terminal v1.22.10352.0 以降などで出ます。
Q. 隠しファイルを最初から表示するには?
A. yazi.toml の [mgr] に show_hidden = true と書きます。その場で切り替えるだけなら . キーです。
Q. Enter でフォルダーにも入れるようにしたい A. 既定でも Enter はフォルダーを開きますが、公式 FAQ によると「開く」と「入る」はわざと分けています。1つにしたいときは公式プラグイン smart-enter を使います。
Q. ゴミ箱に入れたファイルはどこにありますか?
A. OS のゴミ箱です。Linux ではデスクトップのゴミ箱と同じ場所に入ります。26.9.1 の公式ドキュメントでは g t でゴミ箱のフォルダーへ移れます。D で消したものはゴミ箱に入りません。
Q. SSH 先のサーバーでも使えますか? A. サーバーに yazi を入れて SSH の中で起動すれば使えます。画像のプレビューは端末と回線の遅延の影響を受けます。26.5.6 のソースには SFTP を扱う部品(yazi-sftp)も入っていました。
Q. 設定を初期状態に戻すには?
A. ~/.config/yazi/ の yazi.toml・keymap.toml・theme.toml を別の名前にするか消すと、既定の設定で起動します。YAZI_CONFIG_HOME に空のフォルダーを指定して試す方法もあります。
Q. ranger から乗り換えると何が変わりますか?
A. hjkl などの移動は似ていますが、コピーが yy でなく y、削除が d(ゴミ箱)と D(完全)というように1打鍵の操作が多くなります。設定は rc.conf ではなく TOML で書きます。
まとめ
- yazi は Rust 製のターミナル用ファイルマネージャー。コマンドは本体の yazi と、プラグイン管理などの ya の2つ。
- 入れ方は brew・winget・snap・各ディストリのパッケージ。ソースからのビルドは取得だけで 522 クレート・351MB で、小さなマシンではバイナリかパッケージが確実。
- 既定のキーはファイル一覧だけで110個。まずは hjkl・Enter・q、次に Space・y・x・p・d の順に覚え、終了後の移動はシェルラッパー y で。
- プレビューは file で種類を判定して jq・pdftoppm・ffmpeg などを呼ぶ。Ubuntu 24.04 の標準では fzf・chafa・ImageMagick が最低版に届かず、fd は fdfind という名前。
- 設定は変えたいところだけ書き、キーは prepend_keymap で足す。画像が出ないときは端末の対応と tmux の allow-passthrough を確かめる。
参考・出典
確認日はいずれも 2026年10月29日です。
- Yazi 公式ドキュメント「Installation」:https://yazi-rs.github.io/docs/installation/
- Yazi 公式ドキュメント「Quick Start」:https://yazi-rs.github.io/docs/quick-start
- Yazi 公式ドキュメント「Configuration」:https://yazi-rs.github.io/docs/configuration/overview
- Yazi 公式ドキュメント「Image Preview」:https://yazi-rs.github.io/docs/image-preview
- Yazi 公式ドキュメント「FAQ」:https://yazi-rs.github.io/docs/faq
- Yazi 公式ドキュメント「CLI」:https://yazi-rs.github.io/docs/cli
- Yazi 公式ドキュメント「Plugins」:https://yazi-rs.github.io/docs/plugins/overview
- Yazi のソースコード(GitHub):https://github.com/sxyazi/yazi
- crates.io「yazi-fm」:https://crates.io/crates/yazi-fm
- PyPI「yazi-bin」:https://pypi.org/project/yazi-bin/
- tmux マニュアル:https://man7.org/linux/man-pages/man1/tmux.1.html
- yazi.nvim(GitHub):https://github.com/mikavilpas/yazi.nvim
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「yaziとは?使い方とキー早見表|ターミナルのファイルマネージャー」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。