2008年7月27日日曜日

Vim での括弧自動補完 :abbreviate

自動補完の話題の続きですが、Vim には :abbreviate というコマンドがあるんですね。
例えば、
:abbreviate ms Microsoft
として、abbreviation を登録するとします。
そうすると、ms<なんか> と入力した場合に ms の部分を Microsoft に変換してくれるのだそうです。

<なんか>の部分は、<Space>, <Tab>, <Enter>, <Esc> などが該当するようです。


で、これを使って括弧の自動補完ができないのかなと思ったんですが、<なんか>まで入力しないと補完されないということに気づきました。
<なんか> として入力された文字を潰さないといけないんですが、<Space> なら潰す必要があるけど、<Esc> なら潰さないという処理が必要なわけです。

というか、そもそも abbreviation はそういうふうに使うもんじゃねーよ、という話です。

2008年7月16日水曜日

Vim での括弧自動補完

ここでの内容を基に、自分なりにカスタマイズしてみる。
" 括弧と引用符の補完
inoremap  (   ()
inoremap  ()  ()
inoremap  <   <>
inoremap  <>  <>
inoremap  [   []
inoremap  []  []
inoremap  {   {}
inoremap  {}  {}
inoremap  "   ""
inoremap  ""  ""
inoremap  '   ''
inoremap  ''  ''
問題点:
  1. It's のようなアポストロフィには未対応
    It's'  となってしまう
  2. 先に閉じ括弧を入力していた場合にも未対応
    ()) ← こうなる
    まぁ、これはどうでもいいや
  3. 引用符をコメント開始の記号にしているファイルタイプには未対応
    vim とか、vb とか
    特に、vim なんて二重引用符がコメントにも文字列リテラルにもなるし…
一番の問題は 1 なんだけど、これを解決しようとするとなると、やっぱりスクリプトを書かないといけない気がする。面倒。

1 のケースでは、カーソル位置が
It's|'
に来るのだから単純に <Del> を一回押してよ、と思うし。これもどうでも良いや。

2008年7月12日土曜日

Vimpi

面白そうなサービスです。
vim.org に登録されているスクリプトをまとめて、新着順、注目度順に並べてくれます。

自分がウォッチしたいスクリプトを登録すると、それらをまとめた GLVS ファイルを作ってくれるので、インストールもすごく楽になります。

素晴しい。

GetLatestVimScripts

GLVS 経由でスクリプトをインストールしようとしたら、
序数 3212 がダイナミック ライブラリ LIBEAY32.dll から見つかりませんでした
などというエラーが出てしまった。

ググったところ、
ということが分かった。

Ruby 自体はマシンにインストールされていたので、早速、両 DLL をコピー。
無事 GLVS が動くようになりましたとさ。

2008年7月2日水曜日

カラースキーム編集プラグイン

なんてものを考えてみた。
  1. いつも通り、お気に入りのカラースキームを選択する
  2. 変更したい箇所(単語)の上で、ハイライト変更のコマンドを実行する
  3. その箇所が、どのグループ(Comment や Keyword) なのかを判別する
    - シンタックスID
    - リンクされていたら、リンク先のシンタックスID
  4. 3 に対応するハイライトを変更する
    - プロンプトを表示して、ユーザにフォントや色を指定してもらう
    - 対応するシンタックスIDの属性を変更
カーソルの位置からグループを特定するのが至難かもしれない。あとは、カーソルを置けない場所の変更をどうするべきか…

だれかつくってよー