Arch Linux - tmuxをインストール

tmuxは1つのターミナルで複数接続したり、複数に画面を分割するためのツール。

デスクトップが使えないサーバーにローカルログインで作業するときは必須レベル。複数ターミナルが起動できるデスクトップ環境でtmuxを使うかどうかは好みにもよると思うが、vimのキーバインドに変更してできるだけマウスやカーソルキーを使わずに作業したい人、MacやWinなど他のターミナルツールと環境を統一したい人にはおすすめしたい。

tmuxをインストール

tmuxをインストール。

tmux

$ sudo pacman -S tmux

tmuxのセッション、ウィンドウ、ペイン

セッションの中にウィンドウがあって、ウィンドウの中にペインがある。
要するにこんな階層構造。


セッション
    - ウィンドウ
        - ペイン

セッション、ウィンドウ、ペインは、すべて複数起動できる

セッションは複数開くことができる。
1つのセッションの中で、複数のウィンドウを開くことができる。
1つのウィンドウの中で、複数のペインを開くことができる。


セッション0
    - ウィンドウ1
        - ペイン1
        - ペイン2
        - ペイン3
    - ウィンドウ2
        - ペイン1
    - ウィンドウ3
        - ペイン1
        - ペイン2

セッション1
    〜
セッション2
    〜
セッション3
    〜
・・・

tmuxの基本操作

プレフィックスのデフォルトキーバインド:
Cntl+b

最初のtmuxセッションを開く


$ tmux
ArchLinux - tmux

ペイン(画面)の操作

ArchLinux - tmuxでペインを開く

ペインを縦に分割


cntl+b , %

ペインを横に分割


cntl+b , "

ペインからペインへの移動


cntl+b , 上下左右のカーソルキー *連打できる

ペインを縦に拡げる


cntl+b , cntl + 上下のカーソルキー *連打できる

ペインを横に拡げる


cntl+b , cntl + 左右のカーソルキー *連打できる

ウィンドウの操作

新しくウィンドウを開く


cntl+b , c

ウィンドウを一覧表示して選択


cntl+b , w

セッションの操作

現在のセッションから切り離す(デタッチ) *セッションはバックグランドで生き続ける


cntl+b , d

新しいセッションを開く


$ tmux new

存在するセッションを表示


$ tmux ls

セッションを指定して接続(アタッチ)


$ tmux a -t [セッション名]

セッションを指定して削除


$ tmux kill-session -t [セッション名]

すべてのセッションを削除


$ tmux kill-server

その他の操作

tmuxのショートカットを表示


$ tmux list-keys

tmuxのカスタマイズ

必須ではないが、好みのキーバインドに変更したり、コピーモードでvi風の操作ができればさらに便利。

ホームディレクトリに .tmux.confを新規作成


$ vim ~/.tmux.conf
.tmux.conf

# プレフィックスキーを Ctrl + b から Ctrl + gに変更
set-option -g prefix C-g
bind-key C-g send-prefix
unbind-key C-b

# 256色表示
set-option -g default-terminal screen-256color
set -g terminal-overrides 'xterm:colors=256'

# マウス操作を有効にする
set-option -g mouse on

# マウスホイールのスクロールアップでコピーモード開始
bind-key -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"

# マウスホイールで最後までスクロールダウンしたらコピーモード終了
bind-key -n WheelDownPane select-pane -t= \; send-keys -M

# ステータスバーをウィンドウタイトルの下に表示
set-option -g status-position top

# ステータスバーの背景の色
set-option -g status-bg "colour235"

# ステータスバーの文字の色
set-option -g status-fg "colour250"

# 右ステータスバーの表示
set-option -g status-right "#h: #{pane_title}"

# vimのキーバインドでペインを移動
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# vimのキーバインドでペインをリサイズ
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# | でペインを縦分割
bind | split-window -h

# - でペインを縦分割
bind - split-window -v

# コピーモードでvimのキーバインドが使えるようにする
set-window-option -g mode-keys vi