GNU Screen のように複数のターミナルを仮想的に扱える tmux の 1.1 が出ていたので、以前ちょろっと試して screen に戻ってしまっていたのでもう一度試してみた。
Vim で 256 色を使う
まず困ったのは Vim。256色にならないorz
でも 256colors2.pl を使うとちゃんと 256 色で表示される。つまりターミナルは問題ない。
どうやら terminal-overrides と言うオプションがあって、それのデフォルト値で terminfo の色数の情報を強制的に書き換えているらしい。が、Vim は $TERM から改めて terminfo を取得するのでこれが反映されない。
無理矢理 :set t_Co=256 としてもいいんだけどそれではなんか負けた気がする。
そもそも GNU Screen の時はなんで大丈夫だったかというと、~/.screenrc 内で term xterm-256color という設定をしていたから。つまり terminfo の色数の情報は元々 256 色だったから問題なかった。
ならば tmux でも同じことをすればいい。これに当たる tmux の設定は、
set-option -g default-terminal terminal
のようなので xterm-256color を設定しようと思ったのだけど、man に
For tmux to work correctly, this must be set to ‘screen’ or a derivative of it.
とか
The TERM environment variable must be set to “screen” for all programs
running inside tmux. New windows will automatically have “TERM=screen”
added to their environment, but care must be taken not to reset this in shell
start-up files.
とか書いてあって xterm なんて指定しようものなら呪い殺されそうな勢いだったので、terminfo を探したところ /usr/share/terminfo/s/screen-256color ってのがあったので、これならいいだろってことでこいつを設定。
set-option -g default-terminal screen-256color
これでめでたく Vim でも 256 色で表示できるようになった。
変更点を確認
せっかく新しいバージョンなので 1.0 からの変更点を CHANGELOG で確認。
元々使ってたわけじゃないので変更もなにもないけど。
と言っても tmux 力と英語力が足りないのでわかった部分だけ。
run-shell
新しく追加されたコマンド。外部コマンドを実行して結果を output-mode で表示する。どういう使い方を想定しているのかはちょっとわからない。
scroll-mode が消えた
copy-mode にて C-Down/C-Up (vi mode では J/K) でカーソル位置を変えずにスクロールできるようになったので、代わりに copy-mode を使ってね、とのこと。
コマンドラインオプション -d が消えた
代わりに、この記事の前半でも出ている terminal-overrides を使ってね、とのこと。
他にもいっぱいあったけど私の tmux 力と英語力ではよくわからんかった><
感想
ステータスラインにマルチバイト文字が表示できるのが地味に便利。Vim で開いてるファイル名をタイトルに設定していたので、GNU Screen のときは稀に日本語が入ったファイルを開くと表示が崩れてどうしようもなかった。
画面の分割の概念も両者で違う。GNU Screen は画面全体を分割してそれぞれにウィンドウを表示するけど、tmux は個々のウィンドウをそれぞれ分割する。
ようは設定面倒/新しいキーバインド覚えるの面倒がネックだったんだけど、実は元々 GNU Screen もそこまでカスタマイズしてないし、キーバインドなんてそのうち慣れるので、今回を機に乗り換えてみようと思う。何か余程の問題が発生したら逆戻りするかもしれないけど、多分大丈夫そう。