Zellij のセッション、配置、エディタ連携
このページの目次
Zellij は端末をセッション、タブ、ペインに整理する。セッションは起動したマシン上で動き、端末ウィンドウはそこへ接続するクライアントとなる。クライアントの分離とセッション終了は別操作である。
例は 0.44.3 で確認した。キーは上書きできるため、現在のステータスバーと設定を確認する。
名前付きセッションを作る
Zellij の外にある端末でプロジェクトへ移動して実行する。
doc-work は名前の例。pwd を確認してから、セッションメニューで detach する。標準設定では一般に Ctrl+o からセッションモードへ入るが、個人設定では異なる。
外側で一覧を確認する。
名前を指定して戻る。
SSH 接続先で作ったセッションは、そのマシンへ再接続してから attach する。ローカルの Zellij では遠隔プロセスを復元できない。
レイアウトが保存するもの
~/.config/zellij/layouts/dev.kdl に保存する。
layout {
pane split_direction="vertical" {
pane size="65%"
pane split_direction="horizontal" {
pane
pane
}
}
}
左を広く、右を上下に分けた三ペインで、コマンドは自動実行しない。通常の端末から新しいセッションを作る。
作業場所やプログラムも指定できるが、配置は構築方法の記述である。プロセスのメモリ、接続、未保存の編集内容を保存するものではない。レイアウト
分離、終了、復元
| 操作 | 状態 | 戻し方 |
|---|---|---|
| detach | セッションは継続 | 同じ名前へ attach |
| ペインのプログラム終了 | そのタスクが終了 | 再実行 |
| セッション終了 | 内部プロセスが終了 | 作業領域を再構築 |
| 再起動やクラッシュ | 元のプロセスは消失 | 保存された配置・命令情報から再構築 |
resurrection は終了したプロセスのメモリ復元ではない。保存されたデプロイ命令や更新処理も無確認で再実行しない。セッション復元
キー競合を小さくする
以下は既定キーを消し、locked と小さな制御モードを作る完全な最小 config.kdl。既存設定を退避してから試す。
default_mode "locked"
keybinds clear-defaults=true {
locked {
bind "Ctrl g" { SwitchToMode "normal"; }
}
normal {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "n" { NewPane; SwitchToMode "locked"; }
bind "d" { Detach; }
bind "h" { MoveFocus "left"; }
bind "j" { MoveFocus "down"; }
bind "k" { MoveFocus "up"; }
bind "l" { MoveFocus "right"; }
}
}
locked は多くのキーを前面へ渡す。Ctrl+g で normal、n でペイン追加、d で分離となる。これは例の定義であり標準キーの説明ではない。
設定とレイアウトの実パスを確認し、構文を調べる。既存セッションと新規セッションの両方で動作を見る。
Neovim と方向キーを共有する
Ctrl+hjkl でエディタ内を移動し、端まで来たら Zellij へ移るには、Neovim の smart-splits と Zellij の vim-zellij-navigator が必要になる。片側だけでは経路が完成しない。
両側の設定と境界テストは Neovim 遠隔入力を参照する。旧ローカル設定の内部関数上書きはバージョン依存の回避策で、新規環境の既定にはしない。
スクロール履歴を編集可能な文書として見る
EditScrollback は履歴をエディタへ渡す。実行パスを確認してからキーを設定する。検索やコピーに便利だが、リアルタイムログではなく、バッファ上限を超えた古い出力も保証されない。
問題が起きたら Zellij なしで比較する。改善すればキー、クリップボード転送、端末能力を調べ、変わらなければ端末やアプリ側へ進む。配色は Matugenで扱う。