ターミナル管理したい(zellij
)
$ zellij --help
$ zellij --session セッション名
$ zellij list-sessions
$ zellij attach セッション名
$ zellij delete-session セッション名
zellij
(ゼリージュ)はターミナルマルチプレクサーという
ターミナル管理(?)ツールです。
ターミナルの中にターミナル(=セッションと呼ぶ)を
入れ子にできるようになっているので、
作業に必要なディレクトリ/ファイルを表示・整理できます。
また、リモートサーバーでzellij
セッションを作成してプロセスを走らせておくと、クライアントからの接続を閉じても再接続後に再開できます。
注釈
「ゼリージュ」はモロッコなどで見られる幾何学模様のモザイクタイルのことだそうです。
インストールしたい(zellij
)
$ brew install zellij
$ brew install --cask font-hack-nerd-font
zellij
はHomebrewでインストールできます。
また、ナビゲーションを表示するためにNerd Font系が必要です。
nerd
が含まれるフォントを追加し、ターミナルに設定してください。
注釈
僕はターミナル上のフォントをMonaspace Krypton
に設定しています。
このフォントはNerd Fontに対応していないため
--simplified-ui = true
に設定して使っています。
セッションしたい(--session
/ -s
)
$ zellij
// セッション名を指定する
$ zellij -s セッション名
zellij
コマンドでセッションを作成できます。
--session
オプションでセッション名を指定できます。
セッション操作したい(Ctrl + キー
)
操作キー |
内容 |
---|---|
ctrl + g |
ロック操作 |
ctrl + p |
ペイン操作 |
ctrl + t |
タブ操作 |
ctrl + r |
リサイズ操作 |
ctrl + h |
移動操作 |
ctrl + s |
ペイン内操作 |
ctrl + o |
セッション操作 |
ctrl + q |
終了 |
セッション内はctrl + キーで操作を開始できます。 この操作キーは、画面の下部に表示されているため、事前に覚える必要はありません。 また、トグルになっているため、間違えて押してしまった場合でも同じキーで取り消せるので便利です。
ロック操作したい(ctrl + g
)
ctrl + g
で、zellijの操作キーをロック/アンロックできます。
いくつかの操作キーは、シェルの操作キーなどと重複しています。
たとえばctrl + p
とctrl + n
はコマンド履歴を遡るために使いますが、zellijではペイン操作とリサイズ操作に割り当てられています。
このような場合にctrl + g
で操作キーをロックすることで、シェルのほうにコマンドを送信できるようになります。
ペイン操作したい(ctrl + p
)
操作キー |
コマンド |
内容 |
---|---|---|
ctrl + p |
n |
ペインを作成 |
ctrl + p |
h j k l |
ペインを移動 |
ctrl + p |
← ↓ ↑ → |
ペインを移動 |
ctrl + p |
ENTER |
ペインを選択 |
ctrl + p |
x |
ペインを閉じる |
ctrl + p |
f |
フルスクリーン |
ctrl + p |
w |
フローティングスクリーン |
タブ操作したい(ctrl + t
)
操作キー |
コマンド |
内容 |
---|---|---|
ctrl + t |
n |
タブを作成 |
ctrl + t |
h l |
タブを移動 |
ctrl + t |
← → |
タブを移動 |
ctrl + t |
ENTER |
タブを選択 |
ctrl + t |
TAB |
タブをトグル |
ctrl + t |
x |
タブを閉じる |
リサイズ操作したい(ctrl + n
)
操作キー |
コマンド |
内容 |
---|---|---|
ctrl + n |
h l |
ペインをリサイズ |
選択したペインのサイズを調整できます。 キーで入力した方向に拡大・縮小します。
移動操作したい(ctrl + h
)
操作キー |
コマンド |
内容 |
---|---|---|
ctrl + h |
h l |
ペインを移動 |
選択したペインの表示位置を変更できます。 キーで入力した方向のペインと入れ替えます。
ペイン内操作したい(ctrl + s
)
操作キー |
コマンド |
内容 |
---|---|---|
ctrl + s |
s |
ペイン内を検索 |
ctrl + s |
↓ ↑ |
スクロール(1行) |
ctrl + s |
d u |
スクロール(半ページ) |
ctrl + s |
e u |
編集 |
less
コマンドのような操作ができます。
セッション操作したい(ctrl + o
)
操作キー |
コマンド |
内容 |
---|---|---|
ctrl + o |
d |
セッションをデタッチ |
ctrl + o |
w |
セッションを管理 |
作業を一時中断するときにデタッチしておけば、 アタッチして再開できます。
セッションを再開したい(attach
/ a
)
// 既存のセッションを再開
$ zellij attach セッション名
$ zellij a セッション名
// セッション名がなければ作成
$ zellij attach --create セッション名
attach
コマンドで、セッションを再開できます。
--create
オプションで、セッション名が存在しない場合に作成できます。
セッションを確認したい(list-sessions
/ ls
)
$ zellij list-sessions
$ zellij ls
kumaroot [Created 21m26m 59s ago] (current)
vitreous-apricot [Created 1m48s ago]
list-sessions
コマンドで、セッション名を確認できます。
作業開始前に使うとよいでしょう。
$ zellij list-sessions
vitreous-apricot [Created 12m 32s ago] (EXITED - attach to resurrect)
セッション名と一緒に、セッションの状態も確認できます。
終了したセッションはEXITED
と表示されます。
$ zellij list-sessions
No active zellij sessions found.
セッションがない場合は
No active zellij sessions found.
と表示されます。
セッションを終了したい(kill-session
/ k
)
$ zellij kill-session セッション名
$ zellij k セッション名
$ zellij kill-all-sessions セッション名
$ zellij ka セッション名
セッションを削除したい(delete-session
/ d
)
$ zellij delete-session セッション名
$ zellij d セッション名
$ zellij delete-all-sessions
$ zellij da
delete-session
コマンドで、デタッチされたセッションを削除できます。
delete-all-session
コマンドで、すべてのデタッチされたセッションを削除できます。
注釈
アクティブなセッションは削除されません。
設定を確認したい(setup --check
)
// 設定を標準出力に表示
$ zellij setup --check
[Version]: "0.40.1"
[CONFIG DIR]: Not Found
[CONFIG FILE]: Not Found
[DATA DIR]: "~/Library/Application Support/org.Zellij-Contributors.Zellij"
[PLUGIN DIR]: "~/Library/Application Support/org.Zellij-Contributors.Zellij/plugins"
[LAYOUT DIR]: Not Found
[SYSTEM DATA DIR]: "/usr/share/zellij"
[ARROW SEPARATOR]:
[MOUSE INTERACTION]:
[DEFAULT EDITOR]: Not set, checked $EDITOR and $VISUAL
[FEATURES]: []
[DOCUMENTATION]: https://www.zellij.dev/documentation/
setup --check
で現在の設定を確認できます。
キーバインドを設定したい
// キーバインドを標準出力に表示
$ zellij setup --dump-config
// ファイルに保存
$ mkdir ~/.config/zellij
$ zellij setup --dump-config > ~/.config/zellij/config.kdl
zellij
用の設定は~/.config/zellij/
に保存します。
設定ファイルはKDL形式が採用されています。
設定できる内容はOptionsで確認できます。
注釈
0.32.0
以前はYAML形式だったようです。
コマンド補完したい
// Fish用の補完を標準出力に表示
$ zellij setup --generate-completion fish
// ファイルに保存
$ zellij setup --generate-completion fish > ~/.config/fish/completions/zellij.fish
自動起動したい
// Fish用の補完を標準出力に表示
$ zellij setup --generate-auto-start fish
// The following snippet is meant to be
// used like this in your fish config:
//
// if status is-interactive
// # Configure auto-attach/exit to your likings (default is off).
// # set ZELLIJ_AUTO_ATTACH true
// # set ZELLIJ_AUTO_EXIT true
// eval (zellij setup --generate-auto-start fish | string collect)
// end
//
if not set -q ZELLIJ
if test "$ZELLIJ_AUTO_ATTACH" = "true"
zellij attach -c
else
zellij
end
if test "$ZELLIJ_AUTO_EXIT" = "true"
kill $fish_pid
end
end
自動で起動できるようのスクリプトがシェルごとに用意されています。
# ~/.config/fish/config.fish
if type -q zellij
echo "=================================================="
echo "Current Zellij Sessions:"
zellij list-sessions
echo "--------------------------------------------------"
echo "Next:"
echo " Resume the session: 'zellij a SESSION_NAME'"
echo " Delete the session: 'zellij d SESSION_NAME'"
echo "=================================================="
end
いつも自動起動だとセッションが溜まってしまいそうなので、 セッション名を確認できるようにだけしています。
コピーしたい(``copy_command`)
// ~/.config/zellij/config.kdl
// Provide a command to execute when copying text.
// Examples:
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
copy_command "pbcopy" // osx
// Choose the destination for copied text
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
ペイン内に表示された内容をコピーする設定です。
copy_command "pbcopy"
でコピーできるようになります。
また、デフォルトはcopy_on_select true
になっていて、ドラグするだけでコピーできます。
Nerd Font設定したい(simplified_ui
)
// ~/.config/zellij/config.kdl
// Options:
// - true
// - false (Default)
//
simplified_ui true
ターミナル上の表示にNerd Fontに対応していないフォントを使いたいので、
simplified_ui true
にしました。