クイックスタート:5分で始めるZellij
TmuxやScreenは数十年にわたり黄金基準とされてきました。しかし、正直なところ、画面を分割するためだけに何十もの「プレフィックス」ショートカットを覚えるのは苦痛に感じることがあります。ZellijはRustで書かれたモダンな代替ツールで、インストールしてすぐに直感的に操作できます。私が乗り換えた理由は、3つのターミナルウィンドウを管理するためだけに、チートシートを印刷して手元に置いておく必要がないツールを求めていたからです。
インストール
Arch Linuxを使用しているなら、コミュニティリポジトリにZellijが見つかります。他のほとんどのディストリビューションでは、RustのパッケージマネージャーであるCargoを使用するのが最も早い方法です。バイナリはコンパクト(通常10〜15MB程度)で、マシン間の移動も容易です。
# Cargoを使用する場合
cargo install --locked zellij
# Ubuntu/Debian(バイナリを直接ダウンロード)
curl -L https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv zellij /usr/local/bin/
基本操作
ターミナルでzellijと入力して開始します。すぐに下部にステータスバーが表示されます。これはZellijの「ディスカバリー(発見)」UIであり、初心者にとっての救世主です。これは何をすべきかを正確に教えてくれます。Ctrl + pでペイン(Pane)モード、Ctrl + tでタブ(Tabs)操作、Ctrl + sでスクロール(Scroll)モードに入ります。
垂直分割の作成は、Ctrl + pの後にnを押すだけです。ペイン間の移動は、Altキーを押しながら矢印キーを使います。動作は非常に軽快です。Tmuxの硬直化した「Prefix + %」のワークフローとは異なり、ここでのナビゲーションはモダンなウィンドウマネージャーを使っているような感覚です。
煩わしさのないレイアウト設定
Zellijは、人間向けに設計されたドキュメント言語であるKDLを使用しています。YAMLの厳格なインデントやJSONのブラケットの山に苦しんだことがあるなら、KDLは新鮮に感じるでしょう。使い始めるのに膨大な設定ファイルは必要ありませんが、カスタムレイアウトこそが最も時間を節約できる機能です。
カスタムレイアウトの作成
レイアウトはワークスペースの構造を定義します。私のWebプロジェクトでは、コードエディタ、開発サーバー、Git用の小さなペインを自動的に起動するレイアウトを使用しています。これにより、毎朝のセットアップ時間を約5分短縮できています。
dev-layout.kdlという名前のファイルを作成します:
layout {
pane size=1 borderless=true {
plugin location="zellij:tab-bar"
}
pane split_direction="vertical" {
pane edit="src/main.rs"
pane split_direction="horizontal" {
pane command="cargo" {
args "run"
}
pane command="git" {
args "status"
}
}
}
pane size=2 borderless=true {
plugin location="zellij:status-bar"
}
}
次のコマンドを実行して起動します:zellij --layout dev-layout.kdl。すべてが終了時とまったく同じ配置で開きます。
キーバインドのカスタマイズ
Vimユーザーにとって、デフォルトのキーは少し馴染みがないかもしれません。これらは~/.config/zellij/config.kdlで簡単にリマップできます。私は個人的に、ペインの切り替えをVimのナビゲーションに合わせて簡略化しました。設定は非常に細かく、ソフトウェアと競合することなく、ほぼすべての操作を特定のキーコンボに割り当てることができます。
高度な機能:フローティングペインとコラボレーション
フローティングペインは私のワークフロー全体を変えました。従来のマルチプレクサでは、すべてのペインが厳格なグリッド内に固定されています。Zellijでは、ペインをワークスペース上に「浮かせる(float)」ように切り替えることができます。私はこれを、manページの確認や簡単な計算などの30秒で終わるタスクに使用し、終わったらすぐに非表示にして元のコードに戻っています。
フローティングペインの使用
Ctrl + pの後にwを押すと、フローティングウィンドウを切り替えられます。数回のキーストロークで移動、サイズ変更、非表示が可能です。メモリが4GBしかない本番環境のUbuntu 22.04サーバーでは、このアプローチが非常に役立ちました。5つの別々のSSH接続を開く代わりに、1つのZellijセッションを実行しました。これによりバックグラウンドで状態が保持され、メモリ使用量を低く抑えることができました。
リモートセッションの共有
ペアプログラミングも驚くほど簡単です。Zellijはセッションのアタッチをネイティブにサポートしているため、複雑なソケット権限を管理する必要はありません。チームメイトがサーバーの問題のデバッグを手伝う必要がある場合、そのマシンにSSHでログインして以下を実行するだけです:
zellij list-sessions
zellij attach <session-name>
両者がリアルタイムで同じターミナルを確認できます。特に帯域幅が不足している場合、重い画面共有アプリに代わる軽量でラグのない選択肢となります。
長期利用のためのパフォーマンス・ヒント
Zellijを1年以上使用して、動作を軽く保つためのいくつかの方法を見つけました。まず、すべてのシェルセッションでZellijを自動起動しないことです。.zshrcにチェックを追加して、対話型セッションの時のみトリガーされるようにします。これにより、SCPやSFTPを使用してファイルを移動する際のエラーを防ぐことができます。
WASMプラグインのパワー
ZellijのプラグインシステムはWebAssembly (WASM) 上に構築されています。つまり、開発者はRust、C++、Goなどでプラグインを記述でき、それらはマルチプレクサ内で安全に動作します。私は「Strider」というファイルエクスプローラープラグインを毎日使っています。マウスに触れたりCLI環境を離れたりすることなく、大規模なディレクトリツリーを移動できます。
大規模なログの管理
毎分5,000行も出力されるようなログを監視していると、メモリ使用量が上昇する可能性があります。動作を高速に保つために、設定ファイルでスクロールバックバッファを制限してください。私は10,000行に制限しています。これにより、デバッグに十分な履歴を確保しつつ、RAMの使用量を最小限に抑えられます。
# config.kdl内
scroll_buffer_size 10000
正しいデタッチ方法
ターミナルウィンドウを閉じるだけにするのは避けましょう。プロセスを維持するには、Ctrl + oの後にdを押してデタッチします。数日後に戻ってきて再アタッチすれば、長時間実行しているスクリプトがまだ動作しているのを確認できます。この永続性は、不安定なWi-Fi接続によって作業が中断される可能性があるリモートワークにおいて、強力なセーフティネットとなります。
Zellijは単なるTmuxのクローンではありません。コマンドラインインターフェースを完全に再考したものです。発見しやすさ(discoverability)とモダンな標準に焦点を当てることで、エキスパートだけでなく、誰にとってもターミナルマルチプレクサを身近なものにしています。

