誰が喜ぶんだこれ
http://d.hatena.ne.jp/janus_wel/20091203/1259837870 でお披露目した unicode.vim だけど関数しか含んでなかったので autoload に移動 & 大幅変更。
- 最新 - http://github.com/januswel/dotfiles/blob/master/vimfiles/autoload/unicode.vim
- この時点 - http://github.com/januswel/dotfiles/blob/e8f79e45f7e5a9871578e20573005a5d20fd5e36/vimfiles/autoload/unicode.vim
引数に文字列をとれるようにしたり ( 引数ナシはナシにした ) その影響で GetUnicodeCodePoint() 関数 ( 正式には unicode#GetUnicodeCodePoint() ) の返り値を List にしたり。第 1 byte をみると何 byte の文字かがわかるという UTF-8 の特性を使っているんだけどこんなすんなり動くと思わなかったので ( 腕試しで書いたというのがでかい ) あーよくできてんなこの encoding と思ったり。あと指定した文字列を search pattern や ASCII character のみの literal の形で返す関数も追加。 vim 上で character set だとか encoding をアレコレやる場合はあると便利、か ?
で、とりあえず現在の cursor 下にある単語をお手軽に展開する mapping を追加する plugin を書いたんだけど <cword> にクセがあってうまく扱いきれてないのでもうちょい brush up が必要そう。 visual mode で対象文字列を指定する方がいいかな。
- 最新 - http://github.com/januswel/dotfiles/blob/master/vimfiles/plugin/uniconv.vim
- この時点 - http://github.com/januswel/dotfiles/blob/eceed9e73c744ceb539228111a5c35060ac38bfd/vimfiles/plugin/uniconv.vim
両方ともいれると下記のようなことが可能になる。まにあっくですね。
" before let hatena = "はてな" echo hatena =~ "しなもん" " after " hit <Leader>ul on はてな let hatena = "\xe3\x81\xaf\xe3\x81\xa6\xe3\x81\xaa" " hit <Leader>up on しなもん echo hatena =~ "\%xe3\%x81\%x97\%xe3\%x81\%xaa\%xe3\%x82\%x82\%xe3\%x82\%x93"