コンテンツにスキップ

Yazi

非同期I/O、画像プレビュー、プラグインシステム、マルチタブサポートを備えたRust製の超高速ターミナルファイルマネージャー。

コマンド説明
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagickmacOSに全プレビュー依存関係付きでフルインストール
brew install yazimacOSに最小インストール
cargo install --locked yazi-fm yazi-clicrates.ioからインストール
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxideArch Linuxにフルインストール
scoop install yaziWindowsにScoopでインストール
winget install sxyazi.yaziWindowsにwingetでインストール
nix-env -i yaziNixOSにインストール
snap install yazi --classicUbuntuにSnapでインストール
コマンド説明
yazi現在のディレクトリでYaziを起動
yazi /path/to/dir特定のディレクトリでYaziを開く
yazi --versionインストール済みバージョンを表示
ya --versionCLIヘルパーのバージョンを表示
yazi --cwd-file=/tmp/cwd終了時に最後のディレクトリを保存
# Bash/Zsh — ~/.bashrc または ~/.zshrc に追加
function y() {
  local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
  yazi "$@" --cwd-file="$tmp"
  if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
    builtin cd -- "$cwd"
  done
  rm -f -- "$tmp"
}
# Fish — ~/.config/fish/config.fish に追加
function y
  set tmp (mktemp -t "yazi-cwd.XXXXXX")
  yazi $argv --cwd-file="$tmp"
  if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
    builtin cd -- "$cwd"
  end
  rm -f -- "$tmp"
end
コマンド説明
j または カーソルを下に移動
k または カーソルを上に移動
h または 親ディレクトリに移動
l または または Enterディレクトリに入る、またはファイルを開く
g g最初のアイテムに移動
G最後のアイテムに移動
~ホームディレクトリに移動
Backspace親ディレクトリに移動
Ctrl + u半ページ上にスクロール
Ctrl + d半ページ下にスクロール
Ctrl + b1ページ上にスクロール
Ctrl + f1ページ下にスクロール
コマンド説明
zzoxideでディレクトリにジャンプ
Zzoxideでジャンプ(インタラクティブfzf)
-前のディレクトリに移動
Ctrl + oナビゲーション履歴を戻る
Ctrl + iナビゲーション履歴を進む
コマンド説明
oデフォルトプログラムでファイルを開く
Oインタラクティブにファイルを開く(プログラムを選択)
Enterファイルを開く、またはディレクトリに入る
qYaziを終了
Qcwd-fileを書き込まずに終了
コマンド説明
y選択したファイルをヤンク(コピー)
x選択したファイルをカット
pヤンク/カットしたファイルをペースト
P上書きでペースト
Y または Xヤンク/カットをキャンセル
-p絶対シンボリックリンクとしてペースト
_p相対シンボリックリンクとしてペースト
Ctrl + pハードリンクとしてペースト
コマンド説明
a新しいファイルまたはディレクトリを作成(末尾/ = ディレクトリ)
r選択したファイルをリネーム
cカーソルを末尾に置いてリネーム
d選択したファイルをゴミ箱に移動
D選択したファイルを完全に削除
.隠しファイルの表示を切り替え
ファイルとディレクトリの作成:
  a myfile.txt      → 新しいファイルを作成
  a mydir/          → 新しいディレクトリを作成(末尾スラッシュ)
  a path/to/file    → ネストされた構造を作成

一括リネーム:
  複数ファイルを選択 → r → $EDITORが開く
  各行 = 1つのファイル名、編集して保存するとすべてリネーム
コマンド説明
Space現在のファイルの選択を切り替え
Vビジュアル(複数選択)モードに入る
Ctrl + a全ファイルを選択
Ctrl + r選択を反転
Escape選択をクリア
コマンド説明
m現在のディレクトリをブックマークとして保存
'ブックマークにジャンプ
"ブックマークを削除
コマンド説明
t現在のディレクトリに新しいタブを作成
Ctrl + c現在のタブを閉じる
1 - 9番号でタブを切り替え
[前のタブに切り替え
]次のタブに切り替え
{タブを前と入れ替え
}タブを次と入れ替え
コマンド説明
/現在のディレクトリでファイルを検索
?逆方向にファイルを検索
n次の検索マッチに移動
N前の検索マッチに移動
コマンド説明
fファイルをフィルタ(マッチするもののみ表示)
sfdを使用してファイルを検索(再帰的)
Sripgrepを使用してファイル内容を検索
: → コマンドを入力コマンドモードを開く
fdによるファイル検索('s'を押す):
  名前パターンでファイルを再帰的に検索
  高速検索のために内部でfdを使用
  結果がピッカーに表示 — Enterでジャンプ

ripgrepによる内容検索('S'を押す):
  ファイル内容を再帰的に検索
  高速テキスト検索のためにripgrepを使用
  結果にファイル名とマッチ行を表示
コマンド説明
プレビューペインにファイル内容を表示サポートされた種類で自動表示
Tabプレビューペインの表示を切り替え
Ctrl + Shift + =プレビューペインの幅を広げる
Ctrl + Shift + -プレビューペインの幅を狭める

サポートされるプレビュータイプ

Section titled “サポートされるプレビュータイプ”
タイプ要件
テキストファイルシンタックスハイライト付きの組み込み
画像(PNG、JPG、GIF)Kitty、iTerm2、またはSixelプロトコル
SVGファイルImageMagick
PDFドキュメントPoppler(pdftoppm
動画サムネイルffmpegthumbnailer
アーカイブ(zip、tarなど)unarまたは7z
Markdown組み込みレンダリング
JSON/YAML組み込みフォーマット
ディレクトリ組み込みリスト表示

ターミナルプロトコルサポート

Section titled “ターミナルプロトコルサポート”
画像プレビュープロトコル(自動検出):

Kitty    — Kittyターミナル(最高品質)
iTerm2   — iTerm2、WezTerm、Mintty
Sixel    — 多くのターミナル(foot、mltermなど)
X11/Wayland — ueberzugpp経由(フォールバック)

yazi.tomlで手動でプロトコルを設定:
  [preview]
  image_quality = 75
コマンド説明
,m更新日時でソート
,M更新日時でソート(逆順)
,c作成日時でソート
,C作成日時でソート(逆順)
,e拡張子でソート
,E拡張子でソート(逆順)
,sサイズでソート
,Sサイズでソート(逆順)
,n名前でソート(自然順)
,N名前でソート(逆順)
,rランダムソート
wタスクマネージャーを切り替え
Tレイアウトを切り替え(1/2/3列)
ファイル目的
~/.config/yazi/yazi.tomlメイン設定
~/.config/yazi/keymap.tomlカスタムキーバインド
~/.config/yazi/theme.tomlカラーテーマ
~/.config/yazi/init.luaLua初期化スクリプト(プラグイン)
# ~/.config/yazi/yazi.toml

[manager]
ratio = [1, 4, 3]          # 列の比率(親、現在、プレビュー)
sort_by = "natural"         # natural、modified、created、extension、size
sort_sensitive = false       # 大文字小文字を区別するソート
sort_reverse = false         # ソート順を反転
sort_dir_first = true        # ファイルの前にディレクトリを表示
linemode = "size"           # none、size、permissions、mtime
show_hidden = false          # 隠しファイルを表示
show_symlink = true          # シンボリックリンクのターゲットを表示

[preview]
tab_size = 2                # プレビューのタブ幅
max_width = 600             # プレビューの最大幅
max_height = 900            # プレビューの最大高さ
image_quality = 75          # 画像プレビューのJPEG品質
sixel_fraction = 15         # Sixelの解像度分数

[opener]
edit = [
  { run = '${EDITOR:-vi} "$@"', block = true, for = "unix" },
  { run = 'code "%*"', orphan = true, for = "windows" },
]

[tasks]
micro_workers = 10          # 小さいファイル操作
macro_workers = 25          # 大きいファイル操作
bizarre_retry = 5           # エラー時のリトライ

カスタムキーバインド(keymap.toml)

Section titled “カスタムキーバインド(keymap.toml)”
# ~/.config/yazi/keymap.toml

[[manager.prepend_keymap]]
on = ["g", "d"]
run = "cd ~/Downloads"
desc = "ダウンロードに移動"

[[manager.prepend_keymap]]
on = ["g", "p"]
run = "cd ~/projects"
desc = "プロジェクトに移動"

[[manager.prepend_keymap]]
on = ["g", "c"]
run = "cd ~/.config"
desc = "設定に移動"

# 現在のディレクトリでターミナルを開く
[[manager.prepend_keymap]]
on = ["!"]
run = 'shell "$SHELL" --block'
desc = "ここでターミナルを開く"

# 選択したファイルを圧縮
[[manager.prepend_keymap]]
on = ["C"]
run = 'shell "zip -r archive.zip $@" --block'
desc = "選択を圧縮"
# ~/.config/yazi/theme.toml

[filetype]
rules = [
  { name = "*/", fg = "#7aa2f7" },           # ディレクトリ
  { mime = "text/*", fg = "#c0caf5" },        # テキストファイル
  { mime = "image/*", fg = "#bb9af7" },       # 画像
  { mime = "video/*", fg = "#e0af68" },       # 動画
  { mime = "audio/*", fg = "#9ece6a" },       # 音声
  { name = "*.rs", fg = "#ff9e64" },          # Rustファイル
  { name = "*.py", fg = "#7aa2f7" },          # Pythonファイル
  { name = "*.md", fg = "#73daca" },          # Markdown
]
コマンド説明
ya pack -a owner/pluginプラグインをインストール
ya pack -ipackage.tomlから全プラグインをインストール
ya pack -uインストール済みの全プラグインを更新
ya pack -lインストール済みプラグインを一覧表示
プラグイン説明
yazi-rs/plugins:full-borderペインの周りにフルボーダー
yazi-rs/plugins:gitGitステータスインジケーター
yazi-rs/plugins:chmodファイルパーミッションの変更
yazi-rs/plugins:max-previewプレビューペインを最大化
yazi-rs/plugins:jump-to-charVimスタイルの文字ジャンプ
DreamMaoMao/searchjump.yazi検索してファイルにジャンプ
# ~/.config/yazi/package.toml
[plugin]
prepend_previewers = [
  { name = "*.md", run = "glow" },
]

# インストールと有効化
# ya pack -a yazi-rs/plugins:full-border
# ya pack -a yazi-rs/plugins:git
# ya pack -i
-- ~/.config/yazi/init.lua
-- インストールしたプラグインを有効化
require("full-border"):setup()
require("git"):setup()
  1. すべてのプレビュー依存関係をインストールする — ffmpegthumbnailer、poppler、unar、jq、fd、ripgrep、imagemagickをインストールして完全なプレビュー体験を得ましょう。これらがないと、多くのファイルタイプが生テキストで表示されます。

  2. シェルラッパーを使用するy関数ラッパーを設定して、Yaziを終了したときに最後のディレクトリにcdされるようにしましょう。単なるビューアではなく、真のナビゲーションツールになります。

  3. ディレクトリブックマークを追加するkeymap.tomlで頻繁に使うディレクトリのカスタムキーバインド(g dでダウンロード、g pでプロジェクト)を設定して瞬時にナビゲートしましょう。

  4. zoxide統合を有効にする — zoxideがインストールされていれば、Yaziでzを押すと、手動でナビゲートすることなく、以前訪問したディレクトリにファジージャンプできます。

  5. 複数の場所での作業にタブを使用する — 複数のディレクトリで作業する必要がある場合、tで新しいタブを開き、1-9で瞬時に切り替えましょう。

  6. 列の比率をカスタマイズするyazi.tomlratio = [1, 4, 3]を調整して、画面サイズに合わせて親リスト、現在のディレクトリ、プレビューペインのバランスを取りましょう。

  7. gitプラグインをインストールするyazi-rs/plugins:gitプラグインはファイルの横にgitステータスインジケーターを表示し、変更済み、ステージ済み、未追跡のファイルを簡単に確認できます。

  8. 一括操作にビジュアルモードを使用するVでビジュアルモードに入り、j/kで選択を拡張し、y/x/dでバッチコピー/カット/削除しましょう。

  9. テーマを設定するtheme.tomlをターミナルテーマに合った色でカスタマイズして統一感のある外観にしましょう。ファイルタイプごとに異なる色を設定して素早い視覚的識別が可能です。

  10. 内容検索を使用するSを押してripgrepでファイル内容を検索しましょう。インタラクティブファイルピッカーが組み込まれたgrep -rのようなものです。