試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(カスタマイズ時の記述と幾つかの設定項目について)

端末の中で仮想端末を管理する tmux(GNU screenの代替)について(ペイン分割とその管理)」に続く内容として、ここから数回に分けてtmuxのカスタマイズに関してを扱う(次の内容までに日付は空ける)が、ここでは設定の記述の形と幾つかの設定項目についてを扱う。

  1. 設定ファイル
  2. キー割り当て
  3. カスタマイズ値の設定
    1. 起動時のセッション/ウィンドウ設定
  4. UTF-8サポート
  5. ウィンドウ番号の開始値
  6. Prefixキーの割り当て変更
  7. コピペのバッファ数と後方スクロール行数上限
  8. マウスクリックでペイン選択

設定ファイル

一般ユーザが設定を記述するファイルは[ホームディレクトリ]/.tmux.confとなる。
システム全体で有効な設定ファイルについては/etc/tmux.confがあればこれが用いられる。

キー割り当て

設定ファイル内で入力するキー操作を表現する表記は

  • C-b: Ctrl+b*1
  • M: Prefix-M*2
  • ^C: Prefix-Ctrl+c*3

のようになる。これをbind-key(短縮形bind)で内部コマンドに割り当て、unbind-key(短縮形unbind)で割り当て解除する。

(内部コマンドを操作に割り当てる)
bind-key [キー操作] [内部コマンド名]
もしくは
bind [キー操作] [内部コマンド名]

(割り当てを解除)
unbind-key [キー操作]
もしくは
unbind [キー操作]

カスタマイズ値の設定

内部コマンドset-option(短縮形set)で幾つかの設定名に対して値を指定できる。

set-option [設定名] [値]
もしくは
set [設定名] [値]

設定可能な項目はmanページの「set-option」の少し下に一覧がある。-gオプションを付けると設定の有効範囲がグローバル(常時有効)となる。
似たものにset-window-option(短縮形setw)があり、設定可能項目は同様にmanページに載っているが、こちらはウィンドウに関する項目のみで、-tオプションを用いて各ウィンドウごとに設定できる(注意点あり・後述)。

(特定ウィンドウで有効)
set-window-option -t [ウィンドウ番号] [設定名] [値]

(全ウィンドウで有効)
set-window-option -g [設定名] [値]

-uオプションを付けると設定を未定義にできる(manページに書かれている既定値になる)。

set-option -u [設定名]

起動時のセッション/ウィンドウ設定
設定ファイル内でウィンドウを指定して「set-window-option -t [ウィンドウ番号]」のオプション指定をすると

/home/[ユーザ名]/.tmux.conf: can't establish current session at line [行]

のようなエラーが出て起動できないが、これはこの時点で対象のウィンドウが存在しないため。
以下のようにセッションとその中のウィンドウを作成する記述をした上で「tmux attach」として起動すると、初期化処理として自動的にウィンドウ作成やウィンドウオプションの適用を行ってくれる。
[一部]ファイル名: ~/.tmux.conf

## 以下はカスタムセッションを作成する
## 「tmux attach」で実行した場合に適用される
## 3つのウィンドウが作成され、1番だけ時計が12時間表示になる例
new-session -s mysession
new-window
new-window
set-window-option -t 1 clock-mode-style 12

(2010/3/31)set-window-option以外にもウィンドウを指定する内部コマンドがあり、split-windowと組み合わせてレイアウトの調整を行ったりすることもできる。
[一部]ファイル名: ~/.tmux.conf

new-session -s mysession
new-window
new-window
## 2番のウィンドウの出力を監視する
set-window-option -t 2 monitor-activity on
## 3番のウィンドウをメイン/横分割にしてメインのペイン幅を45にする
split-window -d
set-window-option -t 3 main-pane-width 45
select-layout -t 3 main-vertical

UTF-8サポート

UTF-8サポートについてはロケール文字列から自動検出/設定されるため、日本語UTF-8ロケール(ja_JP.UTF-8)で動作している限りは特に設定を記述する必要はない。ただし、古いバージョンは除く。
万が一、日本語の表示がおかしい部分がある場合は「utf8」や「status-utf8」を「on」にする。
[一部]ファイル名: ~/.tmux.conf

## UTF-8を用いるかどうかはロケールから自動検出される(必要のある場合のみ指定)
#set-window-option -g utf8 on
#set-option -g status-utf8 on

ウィンドウ番号の開始値

ウィンドウは0番から0,1,2,...と増えていくが、「base-index」指定により、「1」など、他の値から開始できる。
[一部]ファイル名: ~/.tmux.conf

## ウィンドウ番号を1から開始
set-option -g base-index 1

Prefixキーの割り当て変更

制御コマンドを送るために2段階のキー入力の1段階目に入力するPrefixキーの割り当て変更については「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(概要・実行・操作)」で扱っている。

コピペのバッファ数と後方スクロール行数上限

コピーモードを用いてコピペを行う際、複数の文字列を保持できる仕組みになっているが、その上限と、コピーモードで出力をさかのぼってスクロールできる行数の上限については変更が可能で、「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(コピペとバッファに関する操作・バッファ数上限と後方スクロール行数の変更)」で扱っている。

マウスクリックでペイン選択

ウィンドウをペインに分割したときにマウスで切り替えができるようにするための設定は「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(ペイン分割とその管理)」で扱っている。

使用したバージョン:

  • tmux 1.1

*1:大文字の「C」にハイフンを付け、その後ろにCtrlと組み合わせるキーを記述

*2:Prefixキーに続けて押すキーを単独で記述・大文字と小文字は区別される

*3:Prefixキーに続けてCtrlと組み合わせて押すキーを「^」に続けて大文字で記述