id:ka-nacht さんが TOFunc を textobj-function と言う形でリリースしてくれたので、以前私が書いた javascript_tofunc.vim を追従させる形で修正した。
詳細は前回のエントリを見てもらうとして、挙動の変更点がいくつか。
変更点
if (inner function) の挙動を変更
関数の{から行末までの間、および}から行頭までの間が全て空白文字だった場合、行指向の関数とみなし内側を行指向で選択するようにした。
id:ka-nacht さんに指摘されて変更。こちらの方が便利な場合が多いはず。
countに対応
count を指定 (2daf など)すると、count個外側の関数が選択される。javascript は関数を入れ子で書くことが多いので、使えた方が便利なはず。
ソース
前回のとは互換性がないので新しくgistに貼った。
http://gist.github.com/101659
埋め込みたかったんだけど、gistのファイル名に/が混じっているとうまく埋め込めない模様。gist--。
追記
こういう話を見つけたので、ちょろっと改編してperl版も作ってみた。
http://gist.github.com/101710
元の記事には言語が何か明記していなかったのだけれど、見た目でperlだと勝手に判断。
functionをsubに変えて引数リストのあたりを少し弄っただけ。
2009/05/02 追記
リポジトリに移した。
http://github.com/thinca/vim-textobj-plugins/tree/master
ついでにafも可能な場合は行指向になるように変更。
しょぼいながらもhelpも書いたので、id:ka-nachtさんがtextobj-functionに取り込んで配布してくれるかもしれません。