MacOS X 10.5.2 でiTerm.app

2週間程度Terminal.appを使ってきたが、「■、□、☆」などの記号が半角として認識されてちいさく表示されてしまうという問題に悩んでいた。
調べてみると、現状ではTerminal.appでは仕様なようで、iTerm.appを使うとよいらしい。

http://iterm.sourceforge.net/

iTerm.appのコンパイルに挑戦してみる。ただ、オリジナルのiTermでは同様の問題があるらしく、patchをあてる必要がある。

http://d.akinori.org/?date=20071105
http://blogger.splhack.org/2007/10/iterm.html

http://lapangan.net/darwinports/index.php?cmd=read&page=PrivatePortfile%2FiTerm
で提供されている、
http://lapangan.net/darwinports/index.php?plugin=attach&refer=PrivatePortfile%2FiTerm&openfile=iTerm-0.9.5.wcwidth.1.tbz2
をもってきて、
http://lapangan.net/darwinports/index.php?HowTo%2FLocalPortfile
を参考にlocal portをつくって
# port install iTerm
してみた。

が、途中でエラー。


Undefined symbols:
".objc_class_name_iTermSecurityMgr", referenced from:
literal-pointer@__OBJC@__cls_refs@iTermSecurityMgr in iTermController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

BUILD FAILED **

検索してみたら、10.5.2ではこのエラーが発生してしまうようでチケットが切られていた。
http://trac.macports.org/projects/macports/ticket/14319

いろいろ解決しようと試行錯誤してみたが、X codeでのリンクのしくみがよくわかならくて断念。
ふと思いついて、iTermのcvsの履歴をみてみると最後にcommitされている部分があやしそう。
http://iterm.cvs.sourceforge.net/iterm/iTerm/iTermController.m?r1=1.71&r2=1.72&sortby=date
で、この部分をもとに戻してみたらコンパイルは成功。無事にiTerm.appが作成できた。

さて、iTerm.appを使ってみたところ、全角記号問題は解決していた。
iTerm.appでは、cut&pasteがxtermっぽくクリック一発でできるところがうれしい。
しばらくiTerm.appを使ってみることにする。<ちょっと気になった点1>
全角文字の上にcursorがいるときに半角分(左側)しかcursorが表示されなくて、右側はかくれてしまう。<ちょっと気になった点2>
sshで他のマシンにloginした状態でscreen上でemacs -nwを使っている(EUC-JP)と一部の文字が文字化けすることがたまにある。
Ctrl-l数回でなおる場合もある。ローカルなemacs -nwではこの問題がおきてないので、screenの問題かも。


追記
screenなしでもemacs -nwで文字化けはおこるのでscreenの問題ではないようだ。
結構頻繁に文字化けするなぁ。