先日のftplugin/javascript_tofunc.vimに続いて今度は textobj-comment を書いてみた。
インストール
- textobj-userが必要。
- ~/.vim/plugin/textobj に突っ込む。まあでも実は plugin 以下ならどこでもいい。
使い方
- acでコメント、icでコメントの内側。
- コメントはsyntaxを見てコメント部分の連続で判断している。よって、 /* hoge *//* huga */ のようになっていても1つのコメントとして扱われる。
- 逆にいえばどの言語でもsyntaxさえあれば使える。
- コメントの内側は、最初の空白文字の内側で判断している。場合によっては不自然になるけど、統一した判断方法がないので仕方ない。
/* hoge */ <= 赤い部分
制限事項
- 前述のとおりsyntaxで見ていて、1文字ずつぐわーっとみているのでコメントが大きいと少し遅い。
コード
雑感など
- help書くのが面倒だったのでgistで誤魔化した。すでにあるtextobjのhelpをテンプレにすれば楽に書けそうなので、書いたらちゃんとリポジトリ作ってそっちに移す。かも。
- もっと高速且つ柔軟(特にic)にしようと思ったら tofunc のように filetype 毎に実装する必要があると思う。
*1:set foldmethod=manual の場合