KaoriYa 版 Vim では日本語を使う際に便利な patch が多数当てられている。patch 自体は本体に付属しているが、そこ以外で本体との差分をまとめたものが見当たらなかったので、patch を参考に本家からの変更点をまとめてみた。
足りない部分や勘違いしている部分がある可能性があるので、突っ込み歓迎。
確認に使ったバージョン
Vim 7.2-20090321 香り屋版
runtime
syntax/memo.vim
新規に追加。どんなものかは README_w32j.txt を開いてみればわかる(このファイルが ft=memo に設定されている)。
syntax/2html.vim
ftp://~ にもリンクが張られるようになる。
option
'charspace' 'csp'
追加のグローバルオプション。Windows 限定。横方向の文字と文字の間隔を設定できる。負数も指定可能。初期値は 0。
'fileencodings' 'fencs'
'fileencodings' に "guess" が使えるようになる。これを設定しておくと、"cp932" "euc-jp" "iso-2022-jp" "utf-8" のどれかから自動判別してくれる。誤認率が減る。
'migemo' 'mgm'
バッファについてローカルな真偽値の追加オプション。+migemo が入ると g/ で migemo 検索を開始できるが、 g? は通常 Rot13 オペレータになっている。このオプションを有効にすると g? が逆向きの migemo 検索を開始するコマンドになる。デフォルトは無効。
余談だけど昔このオプションの効果を知らずにとりあえず有効にしていたら、誰かさんが張りつけた Rot13 文字列を解除できなくてぐわーってなったので今は無効にしてある。私は元々 ?(逆向き検索) を使わないし。
'migemodict' 'mgd'
追加のグローバルオプション。migemo 用の辞書ファイルの位置を指定する。migemo を使いたい場合は設定必須。デフォルトは空。
辞書関連のファイルのエンコードは 'encoding' の値と合わせておく必要があるみたい。
'modeline' 'ml'
通常モードライン(ファイルの先頭や末尾にある vim:fenc=utf8 みたいな文字列) に 'fileencoding' を指定するとファイルを開いた後で 'fileencoding' が再設定されるので期待した動作にならないんだけど、'fileencoding' を特別扱いして読み直してくれるようになる。
'transparency' 'tra'
追加のグローバルオプション。Windows 限定。ウィンドウの透明度を 0 〜 255 の間で設定する。範囲外の値を設定した場合は 255 が設定される。デフォルトは 255。
feature
+guess_encode
'fileencodings' に "guess" が使えるようになる。
+kaoriya
これにより、vimrc で KaoriYa 版かどうか判定できる。
if has('kaoriya') " something... endif
その他
- sentence (:help sentence) の定義として "、" や "。" も使うようになる。
- Windows GUI にて、空白文字の描画を行わないことで描画速度を改善しているようです。
- 内部で使ってる vim_strchr 関数を最適化してる模様。 ← よく読んでない
- 日本語のメッセージや tutor の間違いを修正してある。
- browsefilter にマルチバイト文字が含まれていると化けるバグの修正。
- ビルド時のオブジェクトファイルの出力先を調整してある。
- libintl.dll より先に libintl2.dll を探すようになっている。
- UimFep が使えるようになる。
- コンソール上で日本語入力を行うためのフロントエンドプロセッサ、らしいのですが、使ったことないのでよく知りません。
- レジストリの HKEY_LOCAL_MACHINE\Software\Vim\Gvim\runtime を見てなにかやっているようなんだけど、実際に何に使っているのかはわかりませんでした。
- libintl.dll と vim.mo を探すためのパスらしいので、多分日本語関係の何か。
plugin
patch ではないけど、plugin もいくつか追加されている。
autodate.vim
ファイルの先頭から50行以内に "Last Change: ." などと書いておくと保存時に "Last Change: 11-May-2002." のように自動で保存時刻に更新してくれる。
cmdex.vim
雑多なコマンドの追加。
- :MenuLang {language} (language: none/ja/zh...etc.)
- :Scratch
- :IminsertOff
- :IminsertOn
- :VDsplit {filename}
- :Tutorial
- :Nohlsearch
- :Transform
- c_CTRL-X
- :Undiff
format.vim
gq でのフォーマットでの日本語の取扱いを改善する。句読点の行頭禁止処理とかいろいろ。
hz_ja.vim
半角全角変換。
scrnmode.vim
ウィンドウを横に伸ばしたりフルスクリーンにしたり戻したりする。
verifyenc.vim
ファイルを開いた際に設定される 'fileencoding' が正しいかどうか検証する。
結構あるねー。これは逆に言うと、普段何気なく使ってる機能であったとしてもここに載っているのは普通のVimにはない機能なので注意。
そう言えば昔if_spidermonkeyも含まれていたと思ったんだけど、今はどうなっているんだろう。ここで配布されているのは知ってるけど、patchが古くなってしまったのかな?