## 経緯 1年半前に[[Zellij]]を一度試したことが、このときは採用を見送った。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📜2024-07-27 Zellijを使ってみる </div> <div class="link-card-v2-content">DHH氏のOMAKUBセットアップスクリプトでZellijに興味を持ち、tmuxやWindows Terminalとの比較やNeovimとの相性を検証した。miseでインストールし、テーマやキーバインドをカスタマイズしたが、Neovim利用時に表示崩れやカラートラブルが発生したため、用途を限定して試用した。最終的に大きなメリットを感じず、Windows TerminalとNeovim中心の運用に戻した。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" /> <a data-href="📜2024-07-27 Zellijを使ってみる" class="internal-link"></a> </div> %%[[📜2024-07-27 Zellijを使ってみる]]%% あれからしばらく経ち、マシンも[[macOS]]に変わり、[[ターミナル]]も[[Ghostty]]になったのでもう一度試してみることにした。 ## 当時について - メリット - 分割速度・移動・状態の引き継ぎがスムーズ - ローカルなら[[macOS]]+[[Ghostty]]だとこれらは実現できている - ただし[[SSH]]の場合は別 - 今は仕事も含めて使う機会が多くないのでアドバンテージはそこまででない - レイアウト機能 - これは未知数、仕事では使える可能性がある - デメリット - [[Neovim]]の表示が乱れる - 🔎 **[[macOS]]+[[Ghostty]]でどうなるか?** ## 環境 | 対象 | バージョン | | ----------- | ------ | | [[macOS]] | 15.7.3 | | [[Ghostty]] | 1.2.3 | | [[Zellij]] | 0.43.1 | ## インストール ```console mise use -g zellij ``` ## 前回の課題について ### [[Neovim]]の表示乱れ 解消していた。[[Zellij]]のバージョンアップによるものか、[[macOS]] + [[Ghostty]] との相性なのかは謎。 カラーリングや[[virtual text (Neovim)|virtual text]]の色問題も解消していた。 ## 良いところ ### タブが見やすい [[Ghostty]]だとこんな感じ。[[macOS]]だとスタイルのカスタマイズはできない。ちゃんと見れば分かるが、アクティブなものが何かが一瞬で分からなかったりする。 ![[2026-02-01-08-43-58.avif]] [[Zellij]]を使うとこう。読みやすいしアクティブなものを視認しやすい。 ![[2026-02-01-08-47-18.avif]] ## 気になったこと ### 画像表示の劣化 [[Yazi]]などの画像描画が[[Neovim]]起動時と同様に劣化する。 ![[2026-02-01-08-24-10.avif]] *[[Zellij]]なし* ![[2026-02-01-08-24-48.avif]] *[[Zellij]]あり* ### [[Ghostty]]や[[Neovim]]とのキーマップ衝突 - デフォルトのキーマップだと `Ctrl` は[[Ghostty]]や[[Neovim]]のキーマップと衝突する - 正直、[[Ghostty]]と[[Neovim]]のキーマップ衝突を防ぐだけでも限界 - [[Ghostty]]の基本的なキーマップを削除すれば、[[Zellij]]がとって代われるかも? - その場合、[[Ghostty]]のタブ機能を無効化し、[[Zellij]]ありきのフローがいる - **[[#画像表示の劣化]]** などのように[[Zellij]]じゃない場合との[[コンテキストスイッチ]]切り替えが必要 - そのデメリットを上回るメリットがあるか? - [[Zellij]]専用のキーマップを定義する - たとえば `<C-p>r` を `;qr` にする - モードごとに `;` スタートのキーマップが必要 - かといって `;qpr` のようにすると流石に手数が多すぎる - [[Neovim]]との衝突は `<C-g>` の [[Zellij]] lockコマンドを使えば解消できる - [[Neovim]]起動中は[[Zellij]]が無効化される前提 - これはこれで[[コンテキストスイッチ]]切り替えコストがかかりそう ## 結論 [[Ghostty]]のタブやウィンドウをやめて、[[Zellij]]には移行しない。何よりも **できるかぎりシンプルにしたい** という自分の思想に反する。 設定でカスタマイズできるところはあるかもしれないが、それに伴うメリットを現時点でそこまで感じないため。 - **メリット** - レイアウトに関する自由度や変更速度がUPする - 通常のターミナル操作で必要になるイメージが今のところあまりない - [[Ghostty]]のウィンドウを新しく立ち上げてウィンドウ整備で事足りる - **[[Neovim]]操作中は[[Neovim]]の[[ウィンドウ (Vim)|ウィンドウ]]・[[タブ (Vim)|タブ]]管理で事足りている** のでそこまでメリットにならない - **よく使うレイアウトやワークスペースのセットアップが一瞬で終わる** - これはメリットだと思う - **SSHしたときの利便性** - [[Ghostty]]だとタブを増やしたらLocalからスタートになると思うので、それと比べると格段に便利 - sessionが保存できるので作業の復元が楽 - **しかし、現状のユースケースではこのようなシーンは稀** - 今後状況が変わったら視野に入れてもいいかも - **[[Neovim]]内で立ち上げたターミナルだと可能性がありそう** - **デメリット** - **キーバインドの設計戦略が難しくなる** - これは重要な負債となってしまう - **操作時の[[コンテキストスイッチ]]が増える** - これも個人的には極力抑えたい部分 ただし、[[Zellij]]はインストールしておく。[[Neovim]]内でターミナルを立ち上げたとき、その中で[[Zellij]]を使うこと自体は可能性を感じたため。