選択範囲を数値文字参照に変換するスクリプト str2numchar.vim

http://www.vim.org/scripts/script.php?script_id=1646
HTML を書いているときに文字列を数値文字参照に変更したいときがあります。特に greasemonkey のスクリプトでは日本語を直接記述することができません。そんなときは今まではちまちま調べていたりしたんですが、めんどくさくなってきたので、選択範囲を数値文字参照に変換する vim スクリプトを書いてみました。スクリプトファイルを ~/.vim/plugin/str2numchar.vim に配置して .vimrc に

vmap <silent> sn :Str2NumChar<CR> 
vmap <silent> sh :Str2HexLiteral<CR> 

と書いておけば、文字列をビジュアルモードで選択して sn を押すと

川o・-・)<2nd life // ←顔の絵文字部分の文字列を範囲選択しておいてsn
&#24029;&#111;&#12539;&#45;&#12539;&#65289;<2nd life // こうなる

と変換されます。ときたまかなり便利に。また文字列を16進の文字列リテラルに変換したい場合も時たまあるので、Str2HexLiteral という関数も一緒に定義されてます。ので

川o・-・)<2nd life // ←顔の絵文字部分の文字列を範囲選択しておいてsh
xE5xB7x9Dx6FxE3x83xBBx2DxE3x83xBBxEFxBCx89<2nd life // こうなる

と変換されます。また普通に

:echo String2NumChar('はてな')
&#12399;&#12390;&#12394;

と関数を呼び出してももちろん使えます。でも文字コードを知りたいだけだったら、文字にカーソルをあわせて ga を押すと

<は> 12399, 16進数 306f, 8進数 30157

みたいに表示されるので、単体の関数呼び出しとしてはあまり使いどころ無いかも、と思ったりしました。Development Environment Conference が近いせいか、また再び vim 熱が上がってきたような気がします。