ターミナルでAIエージェント、エディタ、開発サーバー、ログ監視を並べたい。けれど、tmuxは設定やキー操作を覚えるまでが少し大変――そんな人に試してほしいのがZellijです。
Zellijは、初期状態からタブ、ペイン、マウス操作、画面下のキーヒントが使えるターミナルワークスペースです。本記事では、日常操作をすぐ引けるチートシートとしてまとめます。
本記事は Zellij 0.44.3 / Default keybinding preset で確認しました。独自設定や
Unlock-Firstpresetを使っている場合はキーが異なります。
まずは30秒で使い始める
インストール
macOS(Homebrew)の場合:
brew install zellij
Rust環境がある場合:
# ビルド済みバイナリを導入
cargo binstall zellij
# またはソースからビルド
cargo install --locked zellij
Linux、macOS、Windows向けのビルド済みバイナリも公式リリースから取得できます。OS別の方法は公式Installationを確認してください。
zellij --version
zellij -s my-project
終了せず元のシェルへ戻るには、Ctrl+oを押して離し、続けてdを押します。これがデタッチです。
最初に覚えるのはこれだけ
| やりたいこと | キー |
|---|---|
| ペインを増やす | Alt+n |
| ペイン間を移動 | Alt+h/j/k/l |
| ペインを拡大・縮小 |
Alt++ / Alt+-
|
| タブを作る |
Ctrl+t → n
|
| タブを移動 |
Ctrl+t → h/l
|
| フローティングペインを表示 |
Ctrl+p → w
|
| セッションからデタッチ |
Ctrl+o → d
|
| ショートカットをロック | Ctrl+g |
Ctrl+p → nは同時押しではありません。Ctrl+pを離したあとにnを押します。
Zellijは「モード」を切り替えて操作します。たとえばCtrl+pでPaneモードへ入ると、画面下部がPane操作の一覧に変わります。迷ったら、まず下のキーヒントを見れば大丈夫です。EscまたはEnterで通常モードへ戻れます。
画面の見方
- 上端:タブ。画像では
devとlogsの2タブ - 中央:通常のタイルペイン。境界を˜マウスでドラッグしてリサイズ可能
- 手前:フローティングペイン。ちょっとした確認や一時作業に便利
- 下端:現在のモードと利用できるキーのヒント
画像は文字化けを避けるためsimplified_ui true相当の互換表示を使っています。通常表示でも操作は同じです。
Direct操作:モードへ入らず使う
Alt系は、通常モードから直接実行できるショートカットです。
| キー | 操作 |
|---|---|
Alt+n |
新しいペインを作成 |
Alt+h/j/k/l |
左・下・上・右へ移動(左右端では隣のタブへ) |
Alt++ / Alt+-
|
ペインを拡大 / 縮小 |
Alt+f |
フローティングペインの表示を切り替え |
Alt+[ / Alt+]
|
前 / 次のSwap layoutへ切り替え |
Alt+i / Alt+o
|
現在のタブを左 / 右へ移動 |
Ctrl+g |
Lockedモードへ切り替え |
Lockedモードでは、Ctrl+g以外のキー入力がZellijに奪われず、そのままペイン内のアプリへ渡ります。Vimやシェルのキーバインドと衝突するときに便利です。解除もCtrl+gです。
Paneモード:分割・移動・全画面
Ctrl+pでPaneモードへ入ります。
| キー | 操作 |
|---|---|
n |
空きに合わせて新しいペインを作成 |
d |
下にペインを作成 |
r |
右にペインを作成 |
s |
Stackペインを作成 |
h/j/k/l または矢印 |
フォーカス移動 |
p |
直前のペインへ戻る |
x |
フォーカス中のペインを閉じる |
f |
フォーカス中のペインを全画面表示 / 復帰 |
w |
フローティングペインを表示 / 非表示 |
e |
タイルとフローティングを相互変換 |
c |
ペイン名を変更 |
z |
ペイン枠を表示 / 非表示 |
i |
フローティングペインを固定 / 解除 |
作業領域を一時的に広くしたいだけなら、閉じるxではなく全画面のfを使うと元の分割を保てます。
Tabモード:ワークスペースを切り替える
Ctrl+tでTabモードへ入ります。
| キー | 操作 |
|---|---|
n |
新しいタブを作成 |
h / l
|
前 / 次のタブへ移動 |
1〜9
|
番号のタブへ移動 |
Tab |
現在と直前のタブを往復 |
r |
タブ名を変更 |
x |
現在のタブを閉じる |
s |
現在のタブ内の全ペインへ入力を同期 |
b |
現在のペインを新しいタブへ分離 |
[ / ]
|
現在のペインを左 / 右隣のタブへ分離 |
入力同期Ctrl+t → sは、複数ホストへ同じコマンドを送るときに強力です。削除や再起動などのコマンドも全ペインへ送られるため、実行後は同じキーでもう一度オフにしておくと安全です。
Resize・Moveモード
Resizeモード
Ctrl+nでResizeモードへ入ります。
| キー | 操作 |
|---|---|
h/j/k/l または矢印 |
指定方向へ広げる |
H/J/K/L |
指定方向を狭める |
+ / =
|
全体的に広げる |
- |
全体的に狭める |
普段はAlt++ / Alt+-、細かく方向を指定したいときはResizeモード、と使い分けると覚えやすいです。
Moveモード
Ctrl+hでMoveモードへ入ります。
| キー | 操作 |
|---|---|
h/j/k/l または矢印 |
指定方向へペインを移動 |
n または Tab
|
ペインを順方向へローテーション |
p |
ペインを逆方向へローテーション |
Scroll・検索・コピー
Ctrl+sでScrollモードへ入ります。アプリ側ではなく、Zellijが保持するペインのスクロールバックを操作するモードです。
| キー | 操作 |
|---|---|
j/k または上下矢印 |
1行ずつ下 / 上へ |
Ctrl+f / Ctrl+b
|
1ページ下 / 上へ |
d / u
|
半ページ下 / 上へ |
s |
検索語を入力 |
e |
スクロールバックを$EDITORで開く |
Ctrl+c |
最下部へ戻り、通常モードへ |
sで検索語を入力してEnterを押すとSearchモードになります。
| Searchモードのキー | 操作 |
|---|---|
n / p
|
次 / 前の一致へ |
c |
大文字・小文字の区別を切り替え |
w |
末尾から先頭への折り返しを切り替え |
o |
単語単位の一致を切り替え |
マウスで文字列を選択すると、初期設定では自動コピーされます。ターミナルエミュレーター本来の選択を使いたい場合は、Shiftを押しながらドラッグします。
Sessionモード:作業を残して離れる
Ctrl+oでSessionモードへ入ります。
| キー | 操作 |
|---|---|
d |
現在のセッションからデタッチ |
w |
Session Managerを開く |
c |
Configurationを開く |
l |
Layout Managerを開く |
p |
Plugin Managerを開く |
a |
Aboutと操作Tipsを開く |
s |
Share画面を開く |
注意:
Ctrl+qはデタッチではなくZellijの終了です。 作業を残して戻りたいときはCtrl+o→dを使います。
シェルからセッションを操作する
# セッション一覧(終了済みで復元可能なセッションも表示)
zellij list-sessions
zellij ls
# 既存セッションへ接続
zellij attach my-project
zellij a my-project
# なければ作成して接続
zellij attach --create my-project
# なければバックグラウンドで作成
zellij attach --create-background my-project
# 実行中セッションを終了
zellij kill-session my-project
# 復元データも含めて完全に削除
zellij delete-session my-project
Zellijは初期設定でセッションのタブ、ペイン、各ペインのコマンドをキャッシュへ保存します。終了やクラッシュ後もzellij lsのEXITED欄、またはSession Managerから復元できます。
復元時、保存されたコマンドは安全のため自動実行されず、Enterを押すまで待機します。詳細はSession Resurrectionにまとまっています。
Layoutで毎回の分割を自動化する
毎朝同じようにエディタ、サーバー、テストを開くなら、KDL形式のLayoutにしておくと一発で再現できます。
~/.config/zellij/layouts/dev.kdl:
layout {
// 自分のプロジェクトへ変更
cwd "/path/to/your/project"
default_tab_template {
pane size=1 borderless=true {
plugin location="zellij:tab-bar"
}
children
pane size=2 borderless=true {
plugin location="zellij:status-bar"
}
}
tab name="dev" focus=true {
pane split_direction="vertical" {
pane size="65%" name="editor" command="nvim"
pane split_direction="horizontal" {
pane name="server"
pane name="tests"
}
}
}
tab name="logs" {
pane name="logs"
}
}
起動します。
zellij --layout dev -s my-project
nvimを使わない場合は、command="nvim"を削除するか好きなコマンドへ変更してください。既存画面からレイアウトを記録したい場合はCtrl+o → lでLayout Managerを開けます。Layoutの全構文はCreating a Layoutにあります。
設定ファイル
標準の設定先は~/.config/zellij/config.kdlです。ファイルがない場合は、デフォルト設定を土台にできます。
mkdir -p ~/.config/zellij
zellij setup --dump-config > ~/.config/zellij/config.kdl
zellij setup --check
すでに設定ファイルがある場合、>で上書きしないよう注意してください。
よく使う設定例です。
// UIを1行にして表示領域を増やす
default_layout "compact"
// Scrollモードの e で開くエディタ
scrollback_editor "nvim"
// ペイン枠を表示
pane_frames true
// 特殊記号が文字化けするときだけ有効化
simplified_ui true
設定可能な項目はOptions、キー変更はConfiguring Keybindingsを参照してください。
キーが衝突するならUnlock-First preset
Zellijには2つの公式キープリセットがあります。
| preset | 特徴 | 新しいペインの例 |
|---|---|---|
default |
少ない打鍵ですぐ操作。この記事で使用 |
Ctrl+p → n
|
Unlock-First (non-colliding) |
最初にロック解除するので、アプリのキーと衝突しにくい |
Ctrl+g → p → n
|
Default presetではCtrl+o → cでConfigurationを開き、セッション中だけ、または恒久的に切り替えられます。詳しくはKeybinding Presetsを参照してください。
困ったとき
| 症状 | 対処 |
|---|---|
| 今どのモードか分からない | 下端を確認。まずEscまたはEnter。LockedならCtrl+g
|
| UIの矢印や記号が崩れる |
zellij options --simplified-ui trueを試す |
| マウスで端末本来の選択ができない |
Shiftを押しながら選択。不要ならmouse_mode false
|
| キーがVimなどと衝突する | 一時的にCtrl+gでLock、またはUnlock-First presetへ変更 |
macOSでAltが効かない |
ターミナル側でOptionキーをMeta / Esc+として送る設定を確認 |
| 終了したセッションへ戻りたい |
zellij lsでEXITEDを確認し、zellij attach セッション名
|
| UIが場所を取りすぎる |
zellij --layout compact、またはdefault_layout "compact"
|
追加の解決策は公式FAQにまとまっています。
まとめ
最初の1日はAlt+n、Alt+h/j/k/l、Ctrl+t → n、Ctrl+o → dだけで十分です。慣れてきたらフローティングペイン、入力同期、Layoutを足していくと、ターミナル上の作業場所をプロジェクト単位で再現できるようになります。
Zellijは画面下にその場のチートシートを常に表示してくれます。すべて暗記しようとせず、モードへ入って候補を見る使い方がいちばん自然です。

