セッション管理
作成とアタッチ
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-servertmux サーバーとすべてのセッションを終了
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-Arrow1 セル分リサイズ
Prefix Alt-Arrow5 セル分リサイズ
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 commandPrefix + 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 disconnecttmux new -s work → 切断 → tmux attach -t work
Share session両ユーザーが tmux attach -t same(読み取り専用: -r
Save scrollbacktmux capture-pane -S -3000 -p > log.txt
Kill stuck panePrefix x、または tmux kill-pane -t %N
Reorder windows:swap-window -s 3 -t 1