textobj の両端へ移動する operator つくった

この記事は Vim Advent Calendar 2013 41日目の記事になります。
また、明日11日は21時から Vimプラグイン読書会が開催されます。

興味のある方は参加してみるとよいと思います。


さて、今回のネタですが、vim-operator-jump_side という operator を作成しました。
この operator は何をするのかというと textobj の先頭、もしくは末尾へと移動する operator になります。

[インストール]

NeoBundle "kana/vim-operator-user"
NeoBundle "osyo-manga/vim-operator-jump_side"

[設定]

" デフォルトではキーマッピングしていないので任意のキーにマッピングして下さい

" textobj の先頭へ移動する
nmap <Space>h <Plug>(operator-jump-head)
" textobj の末尾へ移動する
nmap <Space>l <Plug>(operator-jump-tail)

" こちらは該当する場所の外側へ移動する
" textobj の先頭へ移動する
nmap <Space>h <Plug>(operator-jump-head-out)
" textobj の末尾へ移動する
nmap <Space>l <Plug>(operator-jump-tail-out)


で、これで何が出来るのかというと例えば、

<Plug>(operator-jump-tail)iw

を行うと単語の末尾へ移動したり、

<Plug>(operator-jump-tail)i(

で、対応する次の ) へと移動することが出来たりします。
ぶっちゃけ、作ってみたものの有効かどうかは未知数です。
いくつかの既存の textobj と組み合わせると強力になったりするかもしれません。
たいていの場合は f でおk,という気もする。
あと

nmap <C-n> <Plug>(operator-jump-tail-out)iw

みたいなマッピングをすると面白いかも。