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
みたいなマッピングをすると面白いかも。