Arch Linux - tmuxをインストール
tmuxは1つのターミナルで複数接続したり、複数に画面を分割するためのツール。
デスクトップが使えないサーバーにローカルログインで作業するときは必須レベル。複数ターミナルが起動できるデスクトップ環境でtmuxを使うかどうかは好みにもよると思うが、vimのキーバインドに変更してできるだけマウスやカーソルキーを使わずに作業したい人、MacやWinなど他のターミナルツールと環境を統一したい人にはおすすめしたい。
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
ペイン(画面)の操作
ペインを縦に分割
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
# プレフィックスキーを 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