snipMate.vim をいじっています

タイピングという、コーディングに於いて本質ではない部分をいくらかでも軽減しようと、 snipMate.vim という vim プラグインを利用し始めたのですが、色々不満な点があったのでいじったりしています。

http://github.com/niha/snipmate.vim

snipMate 自体の説明は略。SRMer とかにはおすすめかもしれません。

まず複数のファイルタイプに関して snippet が追加できなかったので、できるようにしました。c.cpp.cs.objc.snippets とかで C, C++, C#, Objective-C に snippet を追加できます。これに伴い C++ とか C# で C の snippet を見る仕様はなくなりました。
その辺の機能を実装する前にリファクタリングをちょっとしたんですが、ファイルタイプ名のサブディレクトリに snippet を一つずつ追加できる機能をずばっと削っちゃったので、使ってた人は気をつけてください。あんまり使われてないと思うけれど…

あとは記号をトリガーにする snippet が、単語の切り分けルールのおかげでいまいち使い辛かったのですが、ルールを変更してしまいました。
"sort_by{" とかでちゃんと "sort_by{" だけでなく "{" がトリガーな snippet を探してくれます。記号の前にスペースちゃんと入れていれば以前のルールでも問題はまあないのですが。まあ何にせよ、このルール変更で困る人はあまりいないはずです。

最後に、幾分過激な補完機能を追加しました。"fo" でトリガーが fo から始まる snippet を(例えば for や foreach) multi-snippet のようにリストし、選択できるようにしてくれます。snippet が一つしかなかった場合は、そのままその snippet を展開してくれます。
これは本当にいくら何でも過激すぎるので「ここまで省略可能」みたいなことが出きるようにしようとは思っています…

他にも複数のファイルタイプが設定された状態で、ファイルタイプ間で snippet のトリガーが被っている場合に、最初のファイルタイプの snippet しか出してくれない問題とかも直さないといけないし、リスト表示して選択させる形式はできれば vim の補完機能を利用して実装したい(けれど選択終了をフックする方法が分からない…)し、やりたいこと、できることはたくさんある…
けれど、これそもそもコーディングをもっと快適に行えるように導入したものなので、これイジりつづけるのは何だか…何だかなあ!