2007-04-01

iTerm

結局iTerm上でvimを使う方が多い訳ですが、0.9.5.0315での問題点は「●」や「→」が何故か表示幅が半角扱い。でもvim上は全角なので表示がずれる。 あとインライン変換のフォントサイズがウィンドウ内と異なるので変換後にインラインウィンドウのかけらが残る。




アスキーフォント 14ポイント、非アスキーフォント 12ポイントなどフォントサイズが異なると、インライン変換ウィンドウが




こんな風にはみでて、しかもゴミが残ったりする。

ということで、CVSからtrunkひっぱてきて調査。かな漢字変換ウィンドウが黄色いところからあたりを付けて、yellowなところを調べる。font(アスキーフォント)とnafont(非アスキーフォント)のうち、インライン変換ウィンドウのフォントにfontを指定しているのが原因。nafontに差し替える。ついでに意味なくgreenにしてみた。



改善!

んでもって「●」などが半角サイズになるのも調査。double widthあたりで調べるとisDoubleWidthCharacterメソッドを発見。「●」が含まれているあたりのUCS-2(unicode >= 0x2500 && unicode <= 0x267f)が何故かコメントアウトされているので復活。



改善!

Index: NSStringITerm.m
===================================================================
RCS file: /cvsroot/iterm/iTerm/NSStringITerm.m,v
retrieving revision 1.8
diff -u -r1.8 NSStringITerm.m
--- NSStringITerm.m 13 Nov 2006 08:01:04 -0000 1.8
+++ NSStringITerm.m 31 Mar 2007 15:40:31 -0000
@@ -306,7 +306,7 @@
if ((unicode >= 0x1100 && unicode <= 0x115f) || // Hangule choseong
unicode == 0x2329 || // left pointing angle bracket
unicode == 0x232a || // right pointing angle bracket
- //(unicode >= 0x2500 && unicode <= 0x267f) || // Box lines, Miscellaneous symbols, etc
+ (unicode >= 0x2500 && unicode <= 0x267f) || // Box lines, Miscellaneous symbols, etc
(unicode >= 0x2e80 && unicode <= 0x2fff) || //
(unicode >= 0x3000 && unicode <= 0x303E) ||
(unicode >= 0x3041 && unicode <= 0x33ff) || // HIRAGANA, KATAKANA, BOPOMOFO, Hangul, etc
Index: PTYTextView.m
===================================================================
RCS file: /cvsroot/iterm/iTerm/PTYTextView.m,v
retrieving revision 1.304
diff -u -r1.304 PTYTextView.m
--- PTYTextView.m 14 Mar 2007 19:08:13 -0000 1.304
+++ PTYTextView.m 31 Mar 2007 15:40:32 -0000
@@ -88,9 +88,9 @@

[self setMarkedTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSColor yellowColor], NSBackgroundColorAttributeName,
[NSColor blackColor], NSForegroundColorAttributeName,
- font, NSFontAttributeName,
+ nafont, NSFontAttributeName,
[NSNumber numberWithInt:2],NSUnderlineStyleAttributeName,
NULL]];
CURSOR=YES;
@@ -492,9 +492,9 @@
nafont=naFont;
[self setMarkedTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSColor yellowColor], NSBackgroundColorAttributeName,
[NSColor blackColor], NSForegroundColorAttributeName,
- font, NSFontAttributeName,
+ nafont, NSFontAttributeName,
[NSNumber numberWithInt:2],NSUnderlineStyleAttributeName,
NULL]];
[self resetCharCache];



パッチ送らないと。後者はなんでコメントアウトされてたのかな...