tmux を使う
screen を使っていたのだが、tmuxに乗り換えた。
以下では prefix キーはデフォルトの「C-b」としてある。
設定
設定ファイルのパス
~/.tmux.conf に設定を書きこむ。 以下で set-option のところは .tmux.conf に書きこめば良い。
コマンドの一覧を見る
端末で
tmux list-commands
とする。
キーバインドの一覧を見る
端末で
tmux list-keys
とコマンドを実行するか、
C-b ?
とする。
プレフィックスキーを変える
プレフィックスキーとして「C-]」を使う。
set-option -g prefix C-]
bind-key C-] send-prefix
unbind-key C-b
ウィンドウの最初の番号を指定する
キーボードのキーの位置に合わせて 1 から始めたほうが便利だと思う。
set-option -g base-index 1
マウスのクリックでペインを選択する
set-option -g mouse-select-pane on
マウスでペインをリサイズする
set-option -g mouse-resize-pane on
マウスでスクロールする
set-option -g mode-mouse on
マウスでウィンドウを選択する
set-option -g mouse-select-window on
起動時に tmux で使用するデフォルトシェルを変更する
tmux set-option default-shell /bin/zsh
で tmux を起動する。また、環境変数を指定して
SHELL=/bin/zsh tmux
とする方法もある。
tmux 起動時のデフォルトシェルの設定を変更する
普段は bash にしておいて tmux では zsh にしたいなら
set-option -g default-shell /bin/zsh
とすればよい。
見た目、色を変える
set-option -g status-fg white
set-option -g status-bg colour18
set-window-option -g window-status-current-fg red
set-window-option -g window-status-current-bg colour18
set-window-option -g window-status-current-attr bold
tmux を自動で実行する
tmux が動いていなければ起動し、 アタッチされていない tmux があれば自動でアタッチするようにしたい。 ~/.bashrc に次を書きこんでおく。
# Attache tmux
if ( ! test $TMUX ) && ( ! expr $TERM : "^screen" > /dev/null ) && which tmux > /dev/null; then
if ( tmux has-session ); then
session=`tmux list-sessions | grep -e '^[0-9].*]$' | head -n 1 | sed -e 's/^\([0-9]\+\).*$/\1/'`
if [ -n "$session" ]; then
echo "Attache tmux session $session."
tmux attach-session -t $session
else
echo "Session has been already attached."
tmux list-sessions
fi
else
echo "Create new tmux session."
tmux
fi
fi
設定ファイルのサンプル
~/.tmux.conf のサンプル。
set-option -g prefix C-]
bind-key C-] send-prefix
unbind-key C-b
bind-key ] select-pane -t :.+
bind-key C-] last-window
bind-key Space next-window
bind-key C-Space next-layout
bind-key Escape copy-mode
bind-key y paste-buffer -s \015
set-option -g base-index 1
set-option -g default-shell /bin/zsh
set-option -g status-fg white
set-option -g status-bg colour18
set-window-option -g window-status-current-fg red
set-window-option -g window-status-current-bg colour18
set-window-option -g window-status-current-attr bold
set-window-option -g mode-keys vi
vi bind のコピーモード
設定に
set-window-option -g mode-keys vi
と書くと vi バインディングのコピーモードになる。 コピーモードでは「h」「j」「k」「l」でカーソル移動、 「SPC」で選択の開始、「RET」で選択の終了。 コピーモードから抜けるには「q」を押す。
キーバインド
C-b ? | ヘルプ |
C-b , | ウィンドウの名前の変更 |
C-b 1 | ウィンドウ1に移動 |
C-b t | 時刻を表示 |