tmux

端末(たんまつ) マルチプレクサ。単一(たんいつ) ウィンドウで複数(ふくすう)端末(たんまつ) セッションを管理(かんり)

インストール

# macOS
brew install tmux

# Ubuntu/Debian
sudo apt install tmux

# Arch Linux
sudo pacman -S tmux

基本概念

  • Session : ワークスペース。複数(ふくすう) の window を(ふく)
  • Window : 単一(たんいつ) 画面(がめん)複数(ふくすう) の pane を(ふく)
  • Pane : 分割(ぶんかつ) されたサブウィンドウ

セッション管理

# 新しいセッションを作成
tmux
tmux new -s session-name

# セッションを一覧表示
tmux ls

# セッションにアタッチ
tmux attach -t session-name
tmux a -t session-name

# セッションをデタッチ
# tmux 内で Ctrl+b d

# セッションを終了
tmux kill-session -t session-name

常用ショートカット

すべてのショートカットは Ctrl+b前置(ぜんち) キー

セッション

キー機能
dセッションをデタッチ
sセッションを一覧(いちらん) 表示(ひょうじ)
$セッション名を変更(へんこう)

ウィンドウ

キー機能
c新規(しんき) ウィンドウを作成(さくせい)
n(つぎ) のウィンドウ
p(まえ) のウィンドウ
0-9特定(とくてい) のウィンドウに切替(きりかえ)
,ウィンドウ(めい)変更(へんこう)
&ウィンドウを() じる
wウィンドウ一覧(いちらん)

ペイン (Pane)

キー機能
%垂直(すいちょく) 分割(ぶんかつ)
"水平(すいへい) 分割(ぶんかつ)
方向キーペインを切替(きりかえ)
xペインを() じる
zペインを最大化(さいだいか) /復元(ふくげん)
{ / }ペイン位置(いち)交換(こうかん)
スペースレイアウトを切替(きりかえ)

コピーモード

キー機能
[コピーモードに(はい)
qコピーモードを終了(しゅうりょう)
Space選択(せんたく)開始(かいし)
Enter選択(せんたく) をコピー
]ペースト

設定

設定(せってい) ファイル場所(ばしょ)~/.tmux.conf

# プレフィックスキーを Ctrl+a に設定
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# マウスを有効化
set -g mouse on

# ウィンドウインデックスを 1 から開始
set -g base-index 1
setw -g pane-base-index 1

# 256 色サポート
set -g default-terminal "screen-256color"

# ウィンドウ分割ショートカット
bind | split-window -h
bind - split-window -v

# vim スタイルのペイン切替
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# 設定の即時リロード
bind r source-file ~/.tmux.conf \; display "Reloaded!"

実用テクニック

セッション共有

# 複数人が同じセッションに接続
tmux new -s shared
# 別の端末で
tmux attach -t shared

セッションの保存と復元

tmux-resurrect プラグインを使用(しよう)

# 保存: Ctrl+b Ctrl+s
# 復元: Ctrl+b Ctrl+r

SSH との組み合わせ

ssh user@host -t "tmux attach || tmux new"