zellij を始める
zellij は tmux とか GNU screen のようなターミナルマルチプレクサ。rust で書かれてるっぽくて、UI がリッチ。 昔は GNU screen を使っていて、最近は tmux を使っていた。tmux にそこまでの不満はないのだが、ふと思い立って zellij を使ってみることにする。
zellij はショートカットキーをやたら要求してくるのがなぁと思ってたけど、non-colliding preset があるんで、こっちを使えば良いだけだった。 tmux みたいに、prefix key を一個に出来て良い。 一日中ターミナルに住む、ような環境で作業するなら、全部にショートカットキーを割り振って、Super とかを prefix にするんだけど、メインは goland での作業とかになりがちなもんで。。
https://zellij.dev/documentation/keybinding-presets#the-unlock-first-non-colliding-preset
unlock キーの prefix をデフォルトの C-g から C-t に変更。tmux で長らく使っているモノ。
scroll mode 内での検索語の移動を n/p から n/N に変更。
clipboard へのコピーは、mouse で選択したら自動的にされる。X みたい。
copy_on_select が true な場合(default は true)。
基本的に、zellij は、プロジェクトごとに一個、とかで起動することが多いので、以下のように fish の関数を定義して起動することにする。 無駄にたくさん立ち上がらなくなって便利。
function zj
# 1. カレントディレクトリのベース名を取得
set -l sess_name (basename (pwd))
# 2. 同名のセッションが何個あるか取得
# -x は「行全体が完全一致」だけを抽出(正規表現の $ が邪魔にならない)
set -l matches (zellij list-sessions | grep -x $sess_name)
# 3. 複数ヒットしたら fzf で選択させる
if test (count $matches) -gt 1
set -l sess_name (printf '%s\n' $matches | fzf --prompt='Select Zellij session> ')
end
# 4. attach –c で「無ければ作成、あれば attach」する
zellij attach $sess_name -c
end
これでしばらく使ってみようと思う。
【20251229追記】
URL のクリックは Shift 押しながらで出来る。数日使ってみてる感じ、zellij でわりとイケそう。
【20260105追記】
ホイールでスクロール出来るようになった気がする。tmuxの時も出来てたかもしれないけど。
Published: 2025-12-24(Wed) 11:48