Macで、Vimで、全角っぽい■とか※とかの記号がずれてイラッとくる問題を解決する

なんかよくある光景:vim

  • vimで日本語のテキスト開く。HTMLファイルとかね。日本語で記号とかもいっぱい使ってるやつ。
  • ※のあたりでカーソルを移動させると、文字の表示とカーソルの表示がずれる。
  • なんかゴーストみたいなやつが行後半にでてくる
  • ( ゜Д゜)!?
  • ctrl+lとかしてゴーストたちを消し去る

たまにある光景:Terminal.app + Screen編

  • Screenで、縦分割する。 | 編集用 | grep用 | みたいな
  • 日本語の文字列を対象にgrepする。
  • 日本語に含まれている記号とかで、Screenの表示が崩れる
  • (・д・)チッ

ということで問題点

全角っぽい記号:UnicodeにおけるAmbiguous width(だと思っている:間違ってたら申し訳)( http://ja.wikipedia.org/wiki/東アジアの文字幅 )が、TerminalとかVimとかでうまい感じに表示されてくれないこと

解決策:Terminal.app編

以下のSIMBLプラグインを使う。
https://kita.dyndns.org/wiki/?TerminalEastAsianAmbiguousClearer
https://github.com/Nyoho/TerminalEastAsianAmbiguousClearer.git

自分がやったときは、

  • githubからソースをcloneしてくる
% git clone https://github.com/Nyoho/TerminalEastAsianAmbiguousClearer.git
  • xcodeでビルドする(terminaltabswitchingをbuildしているときと同じのんを使ったらいけたので、これで。。)
xcodebuild -sdk macosx10.7 -configuration Release build
  • Terminal.appを再起動(多分必要)

解決策:Vim

以下の記事のコメントで見かけたオプションでいく。
http://slashdot.jp/journal/549921/MacOSXのターミナルとiTerm2と四角記号全角半角問題

set ambiwidth=double

https://github.com/sugilog/dotfiles/commit/f3ef699e617fd8aaecd22cfbfaa57de6f7ee6852


MacでTerminal.appでVimで、のときは、Terminal.appとVimのと、両方やってあげる必要あり

快適です。