CLIツール
mikavilpas/yazi.nvim avatar
mikavilpas/yazi.nvim

yazi.nvim レビュー: Neovim のフローティングウィンドウで yazi を操るプラグインの実力と制約

yazi ターミナル ファイル マネージャー用の Neovim プラグイン。このプラグインを使用すると、Neovim のフローティング ウィンドウで yazi を開くことができます。

スター 1,863フォーク 58LuaMIT
GitHub

ひと目でわかる

これは何?
mikavilpas/yazi.nvim は、ターミナルファイルマネージャ yazi を Neovim のフローティングウィンドウで開く Lua 製プラグイン。バッファ同期や LSP 連携など独自の機構を持つ一方、依存関係や yazi のバージョン要件に注意が必要だ。
誰に向いている?
採用すべきは、Neovim と yazi の両方を日常的に使い、ファイル操作をエディタから切り替えずに完結させたい中級者以上のユーザーだ。特に、複数バッファを開いたままファイルの移動や削除を頻繁に行う人には、バッファ同期と LSP 連携が大きな利点になる。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Lua です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

yazi.nvim が解決するのは「エディタとファイルマネージャの往復」問題

Neovim でファイルを操作するとき、多くの人は netrw か、あるいは別ターミナルでファイルマネージャを開いている。yazi.nvim は、ターミナルファイルマネージャ yazi を Neovim のフローティングウィンドウとして開くことで、エディタのコンテキストを離れずにファイル操作を可能にする。対象ユーザーは、yazi を既に使っていて、その高速なファイル操作を Neovim のセッション内に統合したい人だ。単にファイルを開くだけでなく、複数選択したファイルを quickfix リストに送ったり、可視スプリットを yazi のタブとして開く機能がある。これは、複数ファイルを同時に扱う開発者にとって、ファイルマネージャの機能をエディタのワークフローに埋め込む具体的な解決策になっている。

フローティングウィンドウとタブ連携の仕組み

このプラグインの中心的な動作は、Neovim のフローティングウィンドウ内で yazi を起動することだ。README によると、開いているすべてのスプリットが yazi のタブとして開かれ、ナビゲーションが容易になる。つまり、Neovim のレイアウトを yazi 側にマッピングして、ファイルを開くときにどのスプリットで開くかを直感的に選べる。また、yazi でホバーしているファイルが Neovim のスプリット上でハイライトされる機能がある。これは、ファイルツリーとエディタの対応関係を視覚的に示すもので、複数ファイルを同時に編集する際の位置把握に役立つ。データフローとしては、yazi の操作イベントを Neovim 側で受け取り、バッファの開閉やハイライトに反映していると推測されるが、詳細な実装は README からは読み取れない。

インストールと設定: lazy.nvim が前提の依存管理

インストールは lazy.nvim が推奨されており、`version = "*"` で最新の安定版を指定する。lazy.nvim を使う場合、プラグインは最小限の依存関係を自動で追加する。README の例では、`nvim-lua/plenary.nvim` を依存に追加しているが、実際には lazy.lua に定義された依存が自動で入る。lazy.nvim または rocks.nvim 以外のパッケージマネージャを使う場合は、依存関係を手動でインストールする必要がある。設定例としては、`<leader>-` に `<cmd>Yazi<cr>` をマッピングし、現在のファイルの場所で yazi を開く。また、`<leader>cw` で nvim の作業ディレクトリを開く。パッケージマネージャなしで使う場合は、`require("yazi").setup({ open_for_directories = true })` を UIEnter オートコマンドで呼び、netrw を無効化する方法が示されている。設定は Lua で直感的に書けるが、依存関係の把握がやや複雑だ。

キーバインドと外部ツール連携の実際

デフォルトのキーバインドは、`<c-v>` で垂直分割、`<c-x>` で水平分割、`<c-t>` で新規タブ、`<c-q>` で quickfix リストに送る。`<f1>` で全キーマップを表示する機能は、プラグインを使い始めたばかりのユーザーに親切だ。外部ツールとの連携は、telescope.nvim、fzf-lua.nvim、snacks.picker があれば、`<c-s>` で yazi のディレクトリ内を live_grep 検索できる。複数ファイルを選択している場合は、その選択範囲に検索を限定できる。grug-far.nvim があれば、`<c-g>` で検索置換が可能。`<c-y>` は相対パスをクリップボードにコピーするが、GNU realpath または OSX では grealpath が必要。これらの連携は、ファイルマネージャの選択結果をそのまま検索や置換に活かす点で、単なるファイルオープン以上の価値を提供する。ただし、連携ツールはすべて別途インストールが必要で、導入コストがかかる。

バッファ同期と LSP 連携の技術的な深さ

このプラグインの特徴的な機能は、yazi でファイルをリネーム、移動、削除したときに、Neovim の開いているバッファを同期することだ。さらに、実行中の LSP サーバーとも同期する。README には、LSP リネームに関する技術解説が documentation/for-developers/lsp-renaming.md にあり、単純なバッファ名の置換ではなく、LSP の rename 機能を利用して参照を更新している可能性が示唆される。また、ファイル削除時には、バンドルされた snacks.bufdelete を使ってバッファを閉じ、ウィンドウレイアウトを保持する。これは、ファイル操作後にエディタの状態が壊れないようにするための細かい配慮だ。ただし、この同期がどの程度の複雑な操作(例えば、ディレクトリごとの移動やシンボリックリンク)に対応しているかは、README からは不明で、実際に試すかドキュメントを掘り下げる必要がある。

制約と失敗モード: Windows 11 要件と yazi のバージョン依存

明確な制約として、Windows では Windows 11 が最小サポートバージョンだ。Windows 10 を使っているユーザーは対象外になる。また、yazi のバージョンが古いと、新機能が使えない可能性がある。README では、新機能を試すには yazi をソースからビルドする必要があると説明している。つまり、このプラグインは yazi の開発スピードに追従する必要があり、安定版の yazi を使っているユーザーは一部の機能が使えないかもしれない。さらに、パッケージマネージャに lazy.nvim や rocks.nvim を前提としているため、他のマネージャを使う場合は依存関係の手動管理が必要で、セットアップの間違いが起きやすい。`:checkhealth yazi` で互換性を確認できるのは助かるが、それでも yazi のバージョンアップに伴う breaking change には注意が必要だ。

代替手段との比較: netrw と純粋な yazi 単体利用

代替手段としては、Neovim 標準の netrw がある。netrw は追加インストール不要で、ディレクトリを開くだけで使えるが、yazi のような高速なファイル操作やタブ連携はできない。yazi.nvim は、netrw を無効化して yazi をディレクトリオープン時に起動するオプションも提供しており、netrw の代わりとして使える。もう一つの代替は、yazi を単体でターミナルに開き、ファイルを開くたびに Neovim に戻る方法だ。これはプラグイン不要でシンプルだが、スプリットやタブの連携、バッファ同期といった利点を失う。yazi.nvim は、yazi の機能を Neovim のワークフローに統合する点で、単体利用より一歩進んでいる。ただし、その分依存関係と設定の複雑さが増す。

メンテナンスとライセンスの観点

このプラグインは MIT ライセンスで、商用利用や改変が自由にできる。開発は活発で、最後のプッシュが 2026 年 8 月であり、v14.0.0 がリリースされている。バージョン番号が示す通り、API の変更が頻繁に行われる可能性があり、アップグレード時に設定やキーバインドの見直しが必要かもしれない。README には、yazi の新機能を追従するために yazi のソースビルドを推奨する記述があり、このプラグインは yazi の開発サイクルに密接に依存している。したがって、メンテナンスコストは、yazi のバージョンアップに合わせてプラグインも更新し続ける必要がある点に集約される。逆に、プラグイン自体のドキュメントは充実しており、開発者向けの技術解説も用意されているので、問題が起きたときの調査はしやすい。

編集部の結論

採用すべきは、Neovim と yazi の両方を日常的に使い、ファイル操作をエディタから切り替えずに完結させたい中級者以上のユーザーだ。特に、複数バッファを開いたままファイルの移動や削除を頻繁に行う人には、バッファ同期と LSP 連携が大きな利点になる。逆に、ファイルマネージャを単発で使いたいだけの初心者や、Windows 10 以前を使っている人は対象外。導入前に、yazi が最新版であることと、lazy.nvim または rocks.nvim を使っていることを確認し、`:checkhealth yazi` で互換性を検証してほしい。このプラグインは、yazi の機能を Neovim に引きずり込むのではなく、両者の長所を橋渡しする設計であり、その価値は yazi のバージョンアップに追従できるかどうかにかかっている。

公式情報源

  1. Official README
  2. Project repository
  3. Release notes
コミュニティノート

コミュニティノート