cookies.txt      .scr

ただのテキストファイルのようだ

TeraTerm + tmux + vimで、256色にする

今まで、Vimでcolorschemeをいじるときは、まともに動くcolorscheme探しだけをしていた。 Vimmerの人が大絶賛しているcolorschemeが動かないのはとても悲しかった。 ずっとそれで妥協していたが、今回それを治そうという気になったので、たくさん調べた。

結論

TERATERM.INIのTermType=xtermTermType=xterm-256colorに書き換える。

過程

おなじ悩みを持つ人は多いらしい。Googleで「tmux 256」などして調べればたくさんヒットする。

qiita.com

↑これがほぼすべてのヒットした解決策情報の最小公倍数。 ここに書いてある二行を.tmux.confにコピペしてみたが、うまく行かなかった。

この2つの文をちゃんと動作を考えると、動かしてみた結果からの想像だが、

set-option -g default-terminal screen-256color

環境変数$TERMをscreen-256colorに上書きするというもので、

set -g terminal-overrides 'xterm:colors=256'

が$TERMがxtermのときの、colorsというオプションを256に書き換えるという感じらしい。たぶん。

$TERMによって変わるterminalのオプション(?)は、terminfoとかいうもの(/usr/share/terminfo/以下)に保存されているらしく、infocmp xtermとかするとその内容が見える。

また、Tmux - ArchWikiにあるように、tmux -2とすると、colorschemeが動いた。 -2は、tmuxを強制的に256colorモードで動かすための引数である。(man tmuxより) (ここで、aliasでtmuxに常に-2をつけるようにする解決策もあったし、紹介されていたが、なんとなく好かなかった。)

このページからリンクされているtmuxのCHANGESを"256"で検索しながら読むと、tmuxは環境変数$TERMに"256col"が含まれているかどうかで、256color modeにするかどうかを決めるそうだ。

確認してみたところ、もとの$TERMは"xterm"だった。

ということで、先に書いた結論のように、TeraTermの設定を書き換えて$TERMに256colorが含まれるようになると、tmuxが256color modeで動いてくれるというわけだ。

ここも想像だが、おそらく.tmux.confのdefault-terminalの設定は、tmux起動後に$TERMが書き換わるが、256color modeで起動するか否かはそれより早く判定されるのではないだろうか。 もしかしたらtmuxの前のバージョンは、この順序が逆だったので、この設定で直る人がいたのかもしれない。