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 時刻を表示

参考

Tags of current page

,