記事一覧に戻る
Yazi + Neovim で完全 IDE 化 — ファイルツリーとコードジャンプを手に入れる

Yazi + Neovim で完全 IDE 化 — ファイルツリーとコードジャンプを手に入れる

ZenChAIne·
AIターミナル開発ツールNeovim

はじめに

前回の Vol.1 では、cmux のペイン分割・組み込みブラウザ・lazygit で日常開発の 8 割をターミナルに収めました。

残りの 2 割は「ファイルツリーで全体構造を把握したい」「定義元にジャンプしたい」——つまり IDE としての機能です。この記事では、ファイラー Yazi とエディタ Neovim(LazyVim)を加えて、VSCode と同等の環境をターミナルだけで構築します。

前提として、導入記事Vol.1 を完了済み、Nerd Font インストール済みとします。

今回の完成形

最終的に目指すのは、以下の 3 ペイン IDE レイアウトです。

┌─────────────┬──────────────────────────────┐
│             │                              │
│   Yazi      │   Neovim (LazyVim)           │
│   ファイラー │   コード編集 + LSP            │
│   プレビュー │                              │
│             ├──────────────────────────────┤
│             │                              │
│             │   Claude Code                │
│             │   AI コーディング              │
│             │                              │
└─────────────┴──────────────────────────────┘
  • 左ペイン: Yazi(ファイルツリー + プレビュー)
  • 右上ペイン: Neovim(コード編集、定義ジャンプ、補完)
  • 右下ペイン: Claude Code(AI コーディング)

lazygit は必要なときに別ペインか Neovim 内から起動します。

3ペイン IDE レイアウトの完成形
3ペイン IDE レイアウトの完成形

Part 1: Yazi でファイルツリーを手に入れる

Yazi は Rust 製のターミナルファイラーです。Vim ライクなキーバインドで操作でき、コードや画像のプレビューも表示できます。VSCode のサイドバーに相当する存在です。

インストール

bash
brew install yazi ffmpegthumbnailer poppler
Yazi のインストール
Yazi のインストール

プロジェクトディレクトリで yazi と打てば、3 カラム構成(親ディレクトリ / カレント / プレビュー)でファイルが一覧表示されます。

基本操作

Vim に触れたことがあれば、ほぼ直感で操作できます。

キー操作
j / kカーソル移動
l / Enterディレクトリに入る / ファイルを開く
h親ディレクトリに戻る
Space選択 / 解除
/検索
q終了

カーソルを合わせるだけで右カラムにプレビューが表示されます。コードならシンタックスハイライト付き、画像ならサムネイル。ファイルを開かなくても中身が分かるので、プロジェクト全体の把握が速くなります。

カスタマイズ

設定ファイルは ~/.config/yazi/yazi.toml です。

toml
# ~/.config/yazi/yazi.toml
[manager]
show_hidden = true
sort_by = "natural"
sort_dir_first = true
Yazi の設定ファイル
Yazi の設定ファイル

テーマは Catppuccin Mocha を入れておくと、Neovim や lazygit と統一できます。

bash
ya pack -a yazi-rs/flavors:catppuccin-mocha

Part 2: Neovim でコード編集を本格化する

なぜ Neovim なのか

Claude Code にコードを書かせていて、「定義元を見たい」「プロジェクト全体を検索したい」と思う場面は多いはずです。Neovim は LSP をネイティブサポートしており、定義ジャンプ参照検索コード補完がターミナル内で動きます。

素の Neovim は設定が大変なので、LazyVim を使います。Neovim のプラグインプリセットで、インストールした瞬間から VSCode に近い操作感が手に入ります。

インストール

bash
# Neovim をインストール
brew install neovim
 
# LazyVim スターターをクローン
git clone https://github.com/LazyVim/starter ~/.config/nvim
 
# git 履歴は不要なので削除
rm -rf ~/.config/nvim/.git
Neovim + LazyVim のインストール
Neovim + LazyVim のインストール

初回起動時(nvim)にプラグインが自動インストールされます。1〜2 分待ち、完了したら q で閉じて再起動すれば準備完了です。

VSCode ユーザー向け操作対照表

Space キーがリーダーキー(VSCode の ⌘ ⇧ P に相当)です。押すと操作メニューが表示されます。

VSCode の操作LazyVim のキー説明
⌘ P (ファイルを開く)Space f fTelescope ファイル検索
⌘ ⇧ F (全文検索)Space s gTelescope grep 検索
F12 (定義に移動)g dGo to Definition
⇧ F12 (参照を検索)g rGo to References
⌃ Space (補完)自動nvim-cmp が自動起動
⌘ ⇧ E (サイドバー)Yazi ペインcmux のペインで代替
⌘ B (サイドバー切替)⌃ HYazi ペインにフォーカス
ターミナル切替⌃ J / ⌃ Kcmux のペイン移動

まずは Space f fg dSpace s g の 3 つだけ覚えれば十分です。

LSP の設定

LazyVim Extras で使用言語のサポートを有効にします。:Mason で LSP サーバーの管理も可能です。

lua
-- ~/.config/nvim/lua/plugins/extras.lua
return {
  { import = "lazyvim.plugins.extras.lang.typescript" },
  { import = "lazyvim.plugins.extras.lang.json" },
  { import = "lazyvim.plugins.extras.lang.python" },
  { import = "lazyvim.plugins.extras.lang.go" },
  { import = "lazyvim.plugins.extras.lang.rust" },
  { import = "lazyvim.plugins.extras.lang.tailwind" },
}
LazyVim Extras の言語サポート設定
LazyVim Extras の言語サポート設定

保存して再起動すれば、各言語の LSP サーバーが自動インストールされます。

Part 3: IDE レイアウトを組み上げる

cmux で 3 ペイン IDE を構築

パーツが揃ったので、IDE レイアウトを組み立てます。

  1. ⌘ D で右にペイン分割
  2. 左ペインyazi を起動
  3. 右ペインにフォーカスして ⌘ ⇧ D で下に分割
  4. 右上ペインnvim . を起動
  5. 右下ペインclaude を起動
  6. 左ペインの境界線をドラッグして幅を 25% 程度に調整

ペイン間の移動

ペイン間の移動は Vim ライクなキーバインドです。

ショートカット移動先
⌃ H左のペイン
⌃ J下のペイン
⌃ K上のペイン
⌃ L右のペイン

この 4 つで Yazi・Neovim・Claude Code を自由に行き来できます。

実践ワークフロー

  1. Yazi でファイルを選んで Enter で開く
  2. Neovimg d で定義ジャンプ、Space s g で検索
  3. Claude Code に「この関数をリファクタリングして」と指示
  4. Claude がファイルを変更 → Neovim が自動で再読み込み
  5. lazygit でコミット

ファイル閲覧、コード編集、AI への指示、コミットまで同じウィンドウで完結します。

yazi.nvim: Neovim 内で Yazi を呼び出す(発展)

cmux のペインとは別に、Neovim 内のフローティングウィンドウとして Yazi を開くこともできます。

lua
-- ~/.config/nvim/lua/plugins/yazi.lua
return {
  {
    "mikavilpas/yazi.nvim",
    event = "VeryLazy",
    keys = {
      { "<leader>e", "<cmd>Yazi<cr>", desc = "Open Yazi" },
    },
    opts = { open_for_directories = true },
  },
}
yazi.nvim プラグインの設定
yazi.nvim プラグインの設定

Space e で Yazi が開き、ファイルを選ぶとそのまま Neovim のバッファで開かれます。

テーマを統一する — Catppuccin Mocha

全ツールの配色を Catppuccin Mocha に統一すると、ペイン間の視覚的な断絶がなくなります。

ツール設定方法
Ghostty~/.config/ghostty/configtheme = catppuccin-mocha
Neovimcolorscheme.luacatppuccin を指定
Yaziya pack -a yazi-rs/flavors:catppuccin-mocha(設定済み)
lazygit~/.config/lazygit/config.ymllightTheme: false

Neovim の設定ファイルだけ載せておきます。

lua
-- ~/.config/nvim/lua/plugins/colorscheme.lua
return {
  {
    "catppuccin/nvim",
    name = "catppuccin",
    opts = { flavour = "mocha" },
  },
  {
    "LazyVim/LazyVim",
    opts = { colorscheme = "catppuccin" },
  },
}
テーマ統一後の Ghostty 設定
テーマ統一後の Ghostty 設定

まとめ — VSCode を閉じてみよう

VSCode の主要機能はすべてターミナルで代替できるようになりました。

VSCode の機能ターミナル IDE の対応
サイドバー(ファイルツリー)Yazi
エディタNeovim + LazyVim
統合ターミナルcmux ペイン
ソース管理lazygit
GitHub CopilotClaude Code
ブラウザプレビューcmux 組み込みブラウザ
拡張機能Neovim プラグイン + Mason

いきなり VSCode を捨てる必要はありません。まずは Yazi でファイルを眺めて、Neovim で g d を数回押してみてください。キーボードだけで完結するスピード感が体験できます。

Neovim の設定が複雑すぎると感じる方には、設定不要で LSP が動く Helix も代替候補です(キーバインドは Kakoune ベースで Vim とは異なります)。

次回の Vol.3 では、ここまで構築した環境をワンコマンドで再現できるスクリプト化と、プロジェクトごとの設定管理について扱います。