textobj-comment を書いた

先日のftplugin/javascript_tofunc.vimに続いて今度は textobj-comment を書いてみた。

インストール

  • textobj-userが必要。
  • ~/.vim/plugin/textobj に突っ込む。まあでも実は plugin 以下ならどこでもいい。

使い方

  • acでコメント、icでコメントの内側。
  • コメントはsyntaxを見てコメント部分の連続で判断している。よって、 /* hoge *//* huga */ のようになっていても1つのコメントとして扱われる。
    • 逆にいえばどの言語でもsyntaxさえあれば使える。
  • コメントの内側は、最初の空白文字の内側で判断している。場合によっては不自然になるけど、統一した判断方法がないので仕方ない。
/* hoge */ <= 赤い部分
  • dac でコメントを消したり zfac でコメントを折りたためたりできるよ*1

制限事項

  • 前述のとおりsyntaxで見ていて、1文字ずつぐわーっとみているのでコメントが大きいと少し遅い。

コード


雑感など

  • help書くのが面倒だったのでgistで誤魔化した。すでにあるtextobjのhelpをテンプレにすれば楽に書けそうなので、書いたらちゃんとリポジトリ作ってそっちに移す。かも。
  • もっと高速且つ柔軟(特にic)にしようと思ったら tofunc のように filetype 毎に実装する必要があると思う。

*1:set foldmethod=manual の場合