XML (HTML) の特殊文字をエスケープするVimスクリプトを書いた
- 2009-09-29
- カテゴリ: Client Side
- タグ: Vim Tips
XMLやHTMLの5つの特殊文字 (&, <, >, ', ") を定義済みのエンティティ (&, <, >, ', ") に変換するVimスクリプトを書いてみた。
5つの文字を置換するだけだから簡単そうに思えるけど、選択範囲だけを対象にしようとするとなかなか難しくて、今まで納得のいくものを作れずにいた。それが、たまたま今日挑戦してみたら、そこそこいい感じのスクリプトが書けたので、記念にブログポストしてみる。
vnoremap <Leader>e "xx:call <SID>EscapeXml('x')<CR>"xP
function s:EscapeXml(regname)
let x = getreg(a:regname)
let x = substitute(x, '&', '\&', 'g')
let x = substitute(x, '<', '\<', 'g')
let x = substitute(x, '>', '\>', 'g')
let x = substitute(x, "'", '\'', 'g')
let x = substitute(x, '"', '\"', 'g')
call setreg(a:regname, x)
endfunction
使い方やコードの解説は続きで。
[FontForge] IPAゴシックとDejaVu Sans Monoを合成するスクリプトを修正
前回のエントリーで、FontForgeのスクリプトを使ってDejaVu Sans MonoとIPAゴシックを合成したりしてみた。そのとき使ったスクリプトを手直しして、少しきれいに出力できるようになったぽいので、新しいスクリプトをメモしておく。
変更点
- 横幅の縮小率を75%から80%に変更
- カーニング情報が崩れていたのを修正
- ハイフン("-")が短すぎて見づらい問題を修正
ソースは続きで。
DejaVuフォントで日本語を使いたい!

プログラミングに使える良いフォントを探していたら、DejaVuフォントというものを見つけた。確かにすごくきれいだし見やすい。
で、VimでDejaVu Sans Monoを使おうと思ったんだけど、Vimでは欧文フォントと和文フォントを別々に指定することができないから、DejaVu Sans Monoを指定してしまうと日本語が表示できなくなってしまう。だから、いろいろと試行錯誤してみた。まだ途中だけどとりあえずメモ。
Vim の正規表現が苦手
- 2008-10-23
- カテゴリ: 雑記
- タグ: Vim 正規表現 Linux Twitterでやれ
Vim の正規表現が苦手。簡単に Perl 互換の正規表現を使う方法ないのかな。
vimの<C-A>と<C-X>に感動した
vimでカーソル位置の数値をインクリメントする<C-A>とデクリメントする<C-X>って、便利そうだったけど今までほとんど使ってこなかった。単純に、コマンド覚えられなかったっていうのが大方の理由だったから、覚えるためにブログにポスト。
で、今日はじめて真面目に<C-A>と<C-X>を使ってみて、意外なほどの高機能ぶりに驚いた。
まず驚いたのが、単純にカーソルの下の数字だけをインクリメントするわけじゃなくて、カーソル周辺の数値も認識してちゃんと繰り上がりや繰り下がりしてくれること。簡単に言えば、ちゃんと↓みたいに繰り上がってくれるということ。
198 199 200 201
そして、01のように書かれていれば八進数として解釈して、0x1のように書かれていれば十六進数として解釈されることにも驚いた。負数もちゃんと処理してくれるし。
便利すぎるー
.vimrcを晒してみる
あちこちのPCで.vimrcを同期するのが手間だったので、web上に晒してみた。
正直なところ、vimを使いこなしているとは思えないので、おすすめな使い方とかを教えてもらえたらうれしい。
vimのフォントをIPAゴシックにしてみた。
- 2008-06-22
- カテゴリ: Client Side
- タグ: Vim IPA
アンチエイリアスな雰囲気に憧れて、vimのフォントをIPAゴシックに変えてみた。
_gvimrcで↓を指定。
set guifont=IPAGothic:h11,MS_Gothic:h11

意外と気に入っている。
でも、ハット(^)とチルダ(~)が同じ文字になってるのは何とかならないのか〜!?





