emacs + screen + Terminal.appでカーソルがずれるのを何とかする

OS Xemacs + screen + Terminal.appを使ってて、いわゆる全角の記号などを扱うと表示がおかしくなることがよくあった。というかOS XだけじゃなくWindowsPUTTYからLinuxSSHでも起きてた気がするけど。ふと気が向いたのでこれを解決しようとしたら出来た。

まず、ターミナルの設定 > 詳細 >「Unicode 東アジア A (曖昧) の文字幅を W (広) にする」にチェック。

次にOS Xのscreenが古いのでソース持ってきて自前でコンパイルする。せっかくなんでついでに256色対応もしとく。

git clone http://git.savannah.gnu.org/cgit/screen.git
cd screen/src
./autogen.sh
./configure --enable-colors256 && make


.screenrcになんか良しなにしてくれる一行を追加。これが古いscreenだと使えない。

cjkwidth on


.zloginでターミナル起動時にscreen立ち上がるようにしてるんで、ここをさっきのコンパイルしたのに変更。

if [ $TERM != "screen" ]; then
    exec /path/to/screen -S main -xRR
fi


以上!