PuTTY+screenを256色で使う

coffee-face-kiss


とある案件向けに開発環境を整えていたときのメモ。


うちのチームでは、Ruby on Railsの開発をscreen + emacsでゴリゴリとコーディングすることを推奨しています。

というのは、本番環境がLinuxで稼動しているので、各メンバはLinux上での開発を実施しており、事実上、PuTTY + screen + emacsでの開発がチーム標準です。
で、RoR向けにemacsでシンタックスをハイライトしているのですが、256色対応しているとハイライトも美しいわけです。


そんなこんなで環境を整えていたわけなのですが、用意されていたOSのディストリビューションがちとばかし古く、パッケージングされているscreenやemacsが古かったので、ソースからビルドしてインストールを実施しました。

とりあえず、screenを256色対応にするところまでを記します。

初期状態は、、、

まずは、対応していないときの状態。

http://frexx.de/xterm-256-notes/

から、

http://frexx.de/xterm-256-notes/data/256colors2.pl

をダウンロードし、screen上で実行したときの模様。

https://farm2.static.flickr.com/1113/1322282982_a5ec283857_o.jpg

16色ですかね。

じゃあ、対応するか

まずは、PuTTYを設定します。

  • [ウインドウ] -> [色]を選択し、「xterm 256色モードを使うことを許可する」にチェックを入れる
  • [接続] -> [データ]を選択し、「端末タイプを表す文字列」に「xterm-256color」を入力する

そして、ログインして、既にscreenがインストールしてあるような場合はscreenを立ち上げてみましょう!
terminfoにxterm-256colorがない場合は、下記のようなメッセージが表示されると思います。

Cannot find terminfo entry for 'xterm-256color'.


まずは、xterm-256colorのterminfoを入れることにします。ncursesをインストールすればOK。

$ wget ftp://invisible-island.net/ncurses/ncurses-5.6.tar.gz
$ tar zxvf ncurses-5.6.tar.gz
$ cd ncurses-5.6
$ ./configure
$ make
$ sudo make install


で、次にscreenを、256色モードを有効にしてビルドし、インストールします。

$ wget http://www.dekaino.net/screen/screen-4.0.3.tar.gz
$ tar zxvf screen-4.0.3.tar.gz
$ cd screen-4.0.3
$ ./configure --prefix=/usr/local --enable-colors256
$ make
$ sudo make install


次に、.screenrcを設定します。

$ vi ~/.screenrc


以下を追記します。

## http://frexx.de/xterm-256-notes/
# erase background with current bg color
defbce "on"
# do not use 'screen-bce'
term xterm-256color


以上で、256色化は完了です。
改めて、上記PuTTYの設定でログインし、screenを立ち上げ、

http://frexx.de/xterm-256-notes/data/256colors2.pl

を実行すると、綺麗な256色のグラデーションが表示されると思います。

https://farm2.static.flickr.com/1415/1321393413_77db5e4dc5_o.jpg

これで、あとemacsなりvimなり適切に設定してやれば美しいシンタックスハイライトが実現できます。