TMUX クイックリファレンス
セッション、ウィンドウ、ペイン、コピーモード、設定
セッション管理
作成とアタッチ
tmux # new session
tmux new -s work # new named session
tmux attach -t work # attach to session
tmux attach -dt work # detach others, attach
セッションコマンド
| tmux ls | すべてのセッションを一覧表示 |
| tmux kill-session -t work | 指定セッションを終了 |
| tmux kill-server | tmux サーバーとすべてのセッションを終了 |
| tmux rename-session -t old new | セッションの名前を変更 |
| Prefix d | 現在のセッションからデタッチ |
| Prefix $ | 現在のセッションを名前変更 |
| Prefix s | セッション一覧(インタラクティブ) |
デフォルトのプレフィックスは Ctrl-b
ウィンドウ
ウィンドウのキーバインド
| Prefix c | 新しいウィンドウを作成 |
| Prefix , | 現在のウィンドウを名前変更 |
| Prefix & | 現在のウィンドウを閉じる(確認あり) |
| Prefix n | 次のウィンドウへ |
| Prefix p | 前のウィンドウへ |
| Prefix 0-9 | 番号でウィンドウに切り替え |
| Prefix w | ウィンドウ一覧(インタラクティブ選択) |
| Prefix l | 直前のアクティブウィンドウに切り替え |
ウィンドウコマンド
tmux new-window -t work # new window in session
tmux swap-window -t 0 # move window to index 0
tmux move-window -t 3 # renumber to index 3
ペイン
分割と閉じる
| Prefix % | 水平分割(左 | 右) |
| Prefix " | 垂直分割(上 / 下) |
| Prefix x | 現在のペインを閉じる(確認あり) |
| Prefix ! | ペインを独立したウィンドウに分離 |
| Prefix z | ペインのズームを切り替え(全画面表示) |
ペインのリサイズ
| Prefix Ctrl-Arrow | 1 セル分リサイズ |
| Prefix Alt-Arrow | 5 セル分リサイズ |
| Prefix Space | レイアウトを順番に切り替え |
レイアウト: even-horizontal, even-vertical, main-horizontal, main-vertical, tiled
ナビゲーション
ペイン間の移動
| Prefix Arrow | 方向のペインへ移動 |
| Prefix o | 次のペインへ順番に移動 |
| Prefix q | ペイン番号を表示し、番号を押してジャンプ |
| Prefix { | 前のペインと入れ替え |
| Prefix } | 次のペインと入れ替え |
セッション間の移動
| Prefix ( | 前のセッションへ切り替え |
| Prefix ) | 次のセッションへ切り替え |
| Prefix s | セッション選択(ツリービュー) |
| Prefix w | すべてのセッションのウィンドウ選択 |
コピーモード
入力とナビゲーション
| Prefix [ | コピーモードに入る |
| q | コピーモードを終了 |
| Arrow / hjkl | カーソル移動(vi モード) |
| Ctrl-u / Ctrl-d | ページアップ / ページダウン |
| g / G | 先頭 / 末尾にジャンプ |
| / | 前方検索 |
| ? | 後方検索 |
| n / N | 次 / 前の検索マッチへ |
選択とコピー
| Space | 選択開始(vi モード) |
| Enter | 選択をコピーして終了 |
| Prefix ] | バッファを貼り付け |
| v | 矩形選択の切り替え(vi モード) |
vi モード有効化: set -g mode-keys vi
設定
一般的な設定(~/.tmux.conf)
set -g mouse on # enable mouse
set -g base-index 1 # windows start at 1
set -g renumber-windows on # renumber on close
set -g default-terminal "tmux-256color"
set -g history-limit 50000
設定の再読み込み
tmux source-file ~/.tmux.conf # from shell
# or Prefix : then type:
source-file ~/.tmux.conf
ステータスバー
ステータスバーオプション
set -g status-position top
set -g status-style "bg=black,fg=white"
set -g status-left "[#S] "
set -g status-right "%H:%M %d-%b"
set -g status-interval 5
フォーマット変数
| #S | セッション名 |
| #I | ウィンドウインデックス |
| #W | ウィンドウ名 |
| #P | ペインインデックス |
| #H | ホスト名 |
| #T | ペインタイトル |
キーバインド
カスタムバインド
# change prefix to Ctrl-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# vim-style pane navigation
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
バインド構文
| bind X command | Prefix + X をコマンドにバインド |
| bind -n M-Left prev | プレフィックスなしでバインド(Alt-Left) |
| bind -r H resize-pane -L 5 | 繰り返し可能なバインド |
| unbind X | バインドを解除 |
| Prefix ? | 現在のキーバインド一覧を表示 |
スクリプティング
スクリプトでレイアウト作成
tmux new-session -d -s dev
tmux send-keys -t dev "vim" Enter
tmux split-window -h -t dev
tmux send-keys -t dev "npm run dev" Enter
tmux attach -t dev
便利なコマンド
| tmux send-keys -t sess 'cmd' Enter | セッションにキーストロークを送信 |
| tmux capture-pane -p | ペインの内容を stdout に出力 |
| tmux display-message '#S' | メッセージ/変数を表示 |
| tmux set-environment -g VAR val | 環境変数を設定 |
| tmux list-keys | すべてのキーバインドを一覧表示 |
よく使うパターン
推奨 ~/.tmux.conf
set -g mouse on
set -g base-index 1
set -g mode-keys vi
set -g status-position top
set -g history-limit 50000
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
クイックレシピ
| Survive SSH disconnect | tmux new -s work → 切断 → tmux attach -t work |
| Share session | 両ユーザーが tmux attach -t same(読み取り専用: -r) |
| Save scrollback | tmux capture-pane -S -3000 -p > log.txt |
| Kill stuck pane | Prefix x、または tmux kill-pane -t %N |
| Reorder windows | :swap-window -s 3 -t 1 |