1. 状況
tmux において、C-b d
というキー操作は、tmux のセッションをデタッチすることを意味します。
- prefix key はデフォルトである B キーとします。
C-b
は、Ctrl キーを押しながら B キーを押すことを表しています。C-b d
は、Ctrl キーを押しながら B キーを押した後、両方のキーから指を離し、その直後に D キーを押すことを表しています。
ここで例えば、
- 手元のPC上のターミナルで tmux を起動する
- 本記事ではこちらをローカル上の tmuxと呼びます。
- そこからリモートのコンピュータに ssh でログインする
- そのリモートのコンピュータ上でも tmux を起動する
- 本記事ではこちらをリモート上の tmuxと呼びます。
という状況で、C-b d
キーを押すと(prefix key は b
とします)ローカル上の tmux とリモート上の tmux のうち、どちらに対してデタッチ操作が実行されるでしょうか?
正解は、ローカル上の tmux になります。キー入力を最初に受け取るのはローカルのPCであるので、これは自然な動作であると言えそうです。
では、リモート上の tmux に対してデタッチするにはどうすればよいでしょうか?
2. どうすればよいか?
リモート上の tmux のセッションに対してデタッチを命令するには、C-b C-b d
というキーを押します。
3. 簡単な解説
最初の C-b C-b
が send-prefix
という命令になり、リモートのコンピュータ上(の tmux)に prefix key を送ってくれるようです。なので、結果的にリモートのコンピュータ上で C-b d
キーを押した動作になります。
参考:tmux(1) – Linux manual page