TwitVim 使用後ウィンドウを移動しないようにした - hkn?
上記の記事にてTwitVimというスクリプトの存在を知り、面白そうなので入れてみたところ
確かに元記事に書かれている通り、Windows版では文字化けするので調べてみました。
以下、文字化けの原因と対処
1292行目の数値文字参照をデコードする部分で、
submatch(1)で切り出した数値を、nr2char関数に渡してます。
Windows版だと&encodingがcp932なので、
nr2char関数に渡される数値はcp932であるものとして処理されます。
が、元データはUTF-8なので誤変換が行われてしまっているようです。
これが期待通りに動作するのは&encがutf-8な環境だけじゃないでしょうか。たぶん。
ということでためしに、下記の様にencodingを一時的に変更する処理をいれてみたところ、
Windows版GVimでも文字化けせずに表示できるようになりました。
(FriendsTwitterコマンドの出力結果のみ確認)
+ let [_, &encoding] = [ &encoding, 'utf-8'] let s = substitute(s, '&#\(\d\+\);','\=nr2char(submatch(1))', 'g') + let &encoding=_
とはいえ
ヘルプみると「encoding変えるな」みたいなこと書いてある。
もうちょっとましなやり方ありそうだけど・・
あと、なんかFriendTwitterコマンドでTimeline表示した後で、新しいバッファ作るとnomodifiableになる。なして?
グローバルオプション変更してんのかしら。ぐえっ