Neovim内Yaziの表示崩れが直らず、Explorerへ切り替えた

WSL2版Neovimで開いたYaziの右側プレビューから、文字が左側のファイル一覧へはみ出しました。ターミナルからYaziを単体で開くと正常です。折り返し設定を入れ、フロートの大きさも直しましたが、Neovim内では崩れたままでした。

そこでNeovim内のYazi連携を止め、ファイル探索をSnacks Explorerへ切り替えました。ファイルの作成や移動は、それまで通りOilを使います。この時期に試したYaziの表示倍率、LazyGitと検索Pickerの表示サイズも、何を変えて何が直らなかったか分かるように残します。

Yaziは90%から98%へ。100%では枠が収まらなかった

YaziをNeovimのフロートで開くyazi.nvimには、表示サイズを決めるfloating_window_scaling_factorがあります。公式READMEでは既定値が0.9、1が100%と説明されています。最初は1.0にしましたが、Neovimの画面と同じ大きさのフロートに丸い外枠まで付くと、枠が画面外へ出ます。9月30日に、lua/plugins/yazi.luaの値を次のように変えました。

floating_window_scaling_factor = 0.98,

この時点では、ディレクトリを開く役目をOil.nvimに残すため、open_for_directories = falseも維持しました。後でYazi連携そのものを無効にしたので、現在この倍率は使われていません。

Yaziのプレビューは折り返し設定後も崩れる

Yaziの右側プレビューで長い行が切れていたため、WSL2側の~/.config/yazi/yazi.tomlに次を追加しました。Yaziの公式資料では、wrap = "yes"はコードプレビューの長い行を折り返す設定です。

[preview]
wrap = "yes"

ところが、9月30日にWSL2版Neovim内で同じ画面を見直すと、プレビューの文字が左側のファイル一覧へはみ出していました。Neovimを通さずYaziを開いた時は正常です。Neovimの:terminal yaziでも、個人設定を読み込まないnvim --cleanから開いても崩れました。Yaziの個人設定も外して試すと、一時的に表示が揃った後、上下移動でまた崩れました。フロートを98%に収めてNeovimを再起動しても症状は残りました。どの描画処理が原因かは特定できていません。

Neovim内のYaziを止め、右側のExplorerで探す

Yaziでは、知らないディレクトリを階層とプレビューから探していました。ファイルを作る・名前を直す・移動する操作は、もともとOil.nvimを使っています。そこでNeovim内のyazi.nvimを無効にし、探索の入口をSnacks Explorerへ替えました。ファイル名が分かる時の<Space>ff、本文から探す時の<Space>sgもそのままです。

Explorerは<Space>eで開き、hとlで階層をたどれます。初期表示はサイドバーで、Pを押すとプレビューを切り替えられます。ファイルを開いた後、右側のExplorerへ戻るには、ノーマルモードでCtrl+w、続けてlを押します。左側のファイルへ戻るならCtrl+w、続けてhです。私は一覧を右側に置きたいので、lua/plugins/ui.luaのSnacks設定に次の要点を加えました。ディレクトリを直接開いた時は引き続きOilを使うため、Snacks側のnetrw置換も無効にしています。

explorer = { replace_netrw = false },
picker = {
  sources = {
    explorer = {
      layout = { layout = { position = "right" } },
    },
  },
}

両方のNeovim設定でyazi.nvimを無効にし、<Space>fyの割り当ても外しました。Yazi本体は削除していません。WSL2側では、Neovimを再起動してExplorerが右側に開くこと、-でOilが開くこと、Explorerからファイルを開いた後にCtrl+w、lで戻れることを確認しました。

WSL2とWindowsで切り替えた

設定ファイルはWSL2側の~/.config/nvimとWindows側の%LOCALAPPDATA%\nvimに分かれています。最初は両方でYaziのフロートを100%にし、その後WSL2側だけ98%へ直しました。今回、両方の設定でYazi連携を止め、Explorerを右側へ配置しました。Windows版Neovimの実画面はまだ確認していません。

掲載画像は、変更前後の比較ではない

9月28日のYazi画像は折り返し設定を追加する前、9月30日の画像は追加後のものです。後者でも文字は左側へはみ出しています。98%へ直した後やExplorerへ切り替えた後の実画面は、まだ撮っていません。LazyGitも撮影時の画面が1枚だけで、98%にする前との比較には使えません。Pickerの変更前後を比較できる画像もありません。

Neovim内でYaziを開き、ディレクトリ一覧と選択ファイルのプレビューを並べて表示した画面
9月28日のYazi画面。右側プレビューの長い行が切れていたため、その後wrap = "yes"を追加しましたが、9月30日の再確認でも表示の崩れは残っていました。
WSL2版Neovim内のYaziで、右プレビューのdateやtagsなどの文字が左側の一覧にはみ出した画面
9月30日の再確認。折り返し設定後も、右プレビューの文字が左側のファイル一覧にはみ出していました。これは表示倍率を98%へ直す前の画面です。
Neovim内でLazyGitを開いた画面。作者欄のメールアドレスは伏せている
Neovim内で開いたLazyGit。サイズ変更前後を比べる画像ではありません。コミット作者欄のメールアドレスを隠しています。

今のところ、WSL2版Neovimでは右側のExplorerへ戻る操作まで確認できています。Yaziが崩れる描画処理は特定できておらず、Explorerへ替えた後の作業効率もまだ判断していません。

同じ時期に調整したLazyGitとPickerの表示

Yaziの文字崩れとは別に、LazyGitで差分を読む時の余白と、検索Pickerでプレビューが占める幅も調整しました。以下の設定はYaziの表示崩れへの対処ではありません。

LazyGitは幅も高さも98%にする

LazyGitはsnacks.nvimから開いています。Snacks.nvimではlazygit.winにウィンドウ設定を渡せます。既定のフロートは幅・高さともに90%なので、差分を読む時に残る余白を減らすため、lua/plugins/ui.luaの既存のfolke/snacks.nvim設定へ次を加えました。

lazygit = {
  win = {
    width = 0.98,
    height = 0.98,
  },
},

LazyGitを100%にしなかったのは、フロートの境界が分かる余白を少し残したかったからです。

Snacks Pickerは98%に広げ、プレビューを6割にする

ファイル検索や全文検索で使うのは、独立したfzfコマンドではなく、Snacks.nvimのPickerです。検索の入力にはfzf形式の絞り込み構文も使えます。標準レイアウトは画面幅・高さの80%で、候補一覧とプレビューがほぼ半分ずつでした。候補の下側をたくさん表示するより、選択中のファイルの中身を読みたいので、Picker全体を98%にし、幅の6割をプレビューへ割り当てました。

picker = {
  layout = { preset = "wide" },
  layouts = {
    wide = {
      layout = {
        box = "horizontal",
        width = 0.98,
        height = 0.98,
        {
          box = "vertical",
          border = true,
          title = "{title} {live} {flags}",
          { win = "input", height = 1, border = "bottom" },
          { win = "list", border = "none" },
        },
        { win = "preview", title = "{preview}", border = true, width = 0.6 },
      },
    },
  },
}

残りの約40%を入力欄と候補一覧に使います。Files、Grep、Git FilesなどのPicker全体に適用する設定です。

確認した公式情報

2026年9月26日の設定記録。Yaziの表示は9月30日、公式情報は公開前の10月1日に再確認しました。

コメント

タイトルとURLをコピーしました