tmuxはターミナルマルチプレクサだ。まずSession、Window、Pane、Clientを区別し、なぜ各ショートカットの前に既定のprefixを押すのかを整理する。
§ 00 · tmux — ターミナルを分け、再接続するプログラム
tmuxは、一つのターミナル内で複数のターミナルプログラムを動かせるターミナルマルチプレクサだ。シェル、エディタ、サーバー、AIコーディングツールなどをWindowとPaneに分けて起動し、一つの画面で切り替える。
外側のターミナルを閉じたりリモート接続が切れたりしても、tmux serverが動いている間は、その中のプロセスを実行し続けられる。ただし、コンピュータの再起動、tmux serverの終了、すべてのSessionの終了に耐える永続ストレージではない。会話履歴を保存するかどうかも、tmuxではなく各プログラムが決める。
§ 01 · ServerからPaneまで — 四つの層を区別する
tmux serverは、Sessionとその中のプログラムの状態をバックグラウンドで管理する。Clientは、外側のターミナルから特定のSessionを画面に接続して見るための接続側だ。一つのSessionには複数のWindowがあり、一つのWindowには一つ以上のPaneがある。
Windowはブラウザのタブに近い。現在のWindow一つを画面いっぱいに表示し、番号や名前で切り替える。Paneは、そのWindowを長方形に分割した領域だ。キーボード入力は、現在のWindowのactive Pane一つに送られる。
| 用語 | 機能 | たとえ |
|---|---|---|
| Server | すべてのSessionと実行状態を管理するバックグラウンドプロセス | 建物の管理室 |
| Client | 外側のターミナルからSessionに接続する画面と入力 | 建物の出入口 |
| Session | 複数のWindowをまとめる作業単位 | 一つのプロジェクトの作業台 |
| Window | 一つ以上のPaneを収め、番号や名前で切り替える画面 | ブラウザのタブ |
| Pane | 実際のターミナルプログラム一つを表示する長方形の領域 | 分割画面の一枠 |
§ 02 · Prefix — Ctrl-bを押してからコマンドキーを押す
既定のprefixはC-b、つまりCtrlを押しながらbを押す組み合わせだ。tmuxのショートカットの多くは、C-bを押して手を離し、その後で次のキーを押す二段階になっている。C-b cなら、Ctrl-bとcを同時に押すのではなく、先にprefixを送り、その後でcを押す。
prefixは「次のキーはシェルや実行中のプログラムではなくtmuxが受け取れ」という合図だ。この記事のショートカットはすべて既定の設定を前提とする。設定ファイルでprefixやキーバインドを変更した場合は、実際の設定を優先する。C-b ?で現在のキー一覧を開ける。
記事を読む: sass.studio.