Post

YAZI入門:Rust製の高速ターミナルファイルマネージャー


この記事はZennでも公開しています。

YAZI入門:Rust製の高速ターミナルファイルマネージャー

YAZIロゴ YAZIロゴ(出典

はじめに

YAZIは、Rustで書かれた高速なターミナルファイルマネージャーです。非同期I/Oをベースにした設計により、非常に高速なファイル操作が可能です。この記事では、YAZIの基本的な使い方から、実践的な活用方法まで詳しく解説します。

YAZIとは

YAZI(「アヒル」の意味)は、Rustで書かれた非同期I/Oベースのターミナルファイルマネージャーです。従来のファイルマネージャーと比較して、以下の特徴があります:

主な特徴

  • 🚀 完全な非同期サポート: すべてのI/O操作が非同期で、CPUタスクは複数のスレッドに分散
  • 💪 強力な非同期タスクスケジューリング: リアルタイムの進捗更新、タスクのキャンセル、内部タスクの優先順位付け
  • 🖼️ 複数の画像プロトコル対応: Überzug++とChafaの統合により、ほぼすべてのターミナルをサポート
  • 🌟 コードハイライトと画像デコード: プリロードメカニズムと組み合わせて、画像と通常ファイルの読み込みを高速化
  • 🔌 並行プラグインシステム: UIプラグイン、機能プラグイン、カスタムプレビュー/プリロード/スポッター/フェッチャー
  • 📡 データ配信サービス: クライアント-サーバーアーキテクチャをベースに、Luaベースのpub/subモデルを統合

インストール方法

macOSの場合

1
brew install yazi

Linuxの場合

1
2
3
4
5
# Arch Linux
yay -S yazi

# Ubuntu/Debian
sudo apt install yazi

手動インストール

1
cargo install yazi

基本的な使い方

1. 起動

1
yazi

2. 基本的なキーバインド

2.1 ナビゲーション

  • j/k: 上下に移動
  • h/l: 親ディレクトリ/子ディレクトリに移動
  • gg/G: 最初/最後のファイルに移動
  • Ctrl+u/d: 半画面上下に移動

2.2 ファイル操作

  • Space: ファイルを選択
  • y: 選択したファイルをコピー
  • d: 選択したファイルを削除
  • r: ファイル名を変更
  • Enter: ファイルを開く

2.3 プレビュー

  • p: プレビューパネルを表示/非表示
  • Tab: プレビューパネルにフォーカス
  • Shift+Tab: メインパネルにフォーカス

実践的な活用方法

1. カスタマイズ

1.1 設定ファイル

~/.config/yazi/keymap.tomlに以下のような設定を追加:

1
2
3
4
5
6
[keymap]
# カスタムキーバインド
"g" = "go_to_top"
"G" = "go_to_bottom"
"Ctrl+f" = "search"
"Ctrl+r" = "refresh"

1.2 テーマのカスタマイズ

~/.config/yazi/theme.tomlでテーマをカスタマイズ:

1
2
3
4
5
6
[theme]
# カラーテーマの設定
primary = "#61AFEF"
secondary = "#C678DD"
background = "#282C34"
foreground = "#ABB2BF"

2. プラグインの活用

2.1 プラグインのインストール

1
2
3
4
5
# プラグインマネージャーのインストール
cargo install yazi-plugin-manager

# プラグインのインストール
yazi-plugin install <plugin-name>

2.2 おすすめプラグイン

  • yazi-fzf: ファジーファインダー統合
  • yazi-preview: 拡張プレビュー機能
  • yazi-git: Git統合

トラブルシューティング

1. よくある問題と解決方法

  1. 画像プレビューが表示されない場合
    • Überzug++またはChafaがインストールされているか確認
    • ターミナルの画像サポートを確認
  2. キーバインドが効かない場合
    • 設定ファイルの構文を確認
    • キーの競合がないか確認
  3. パフォーマンスの問題
    • 非同期I/Oの設定を確認
    • システムリソースの使用状況を確認

まとめ

YAZIは、Rustの非同期I/Oを活用した高速なファイルマネージャーです。その柔軟なカスタマイズ性と豊富な機能により、効率的なファイル操作が可能です。

参考リンク

This post is licensed under CC BY 4.0 by the author.