neocomplcache.vimを改良しようとしたら既にされてた件
- 2010-05-27
- カテゴリ: その他のプログラミング
- タグ: Vim 車輪の再発明
ちょっと前に、Vimの自動補完プラグインをAutoComplPopからneocomplcacheに乗り換えた。
何で乗り換えたのかは忘れた。確かAutoComplPopはUbuntuのscim+gvim環境と相性がよくなかったからだったと思うけど、実際のところUbuntuではgvim使ってないからあまり意味ない。ついでに言うと、neocomplcacheはキーワード補完にちょっと癖があってまだ慣れてない。
ただ、neocomplcacheは機能追加が著しいから、将来の可能性を信じて使ってる。
で、今日はneocomplcacheの補完開始時のカーソル位置が気に食わなかったので、AutoComplPopのスタイルに改造してみましたという話。
結論から言うと、マニュアル読んだりソース読んだりしてがんばってやってみたけど、本家の最新ソースコードを読んだら既にその機能が実装されていて、ちょっと切なかったという話。詳細は続きで。
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を使いこなしているとは思えないので、おすすめな使い方とかを教えてもらえたらうれしい。