vim-smallsを使ってみた

vim
Vimの移動系プラグインの中では、今のところ vim-smalls がベストな選択。

photo-credit: syui


vim-smalls


vim-smallsの概要



vim-smallsというプラグインがあります。


このプラグインは、現在、3つの点で非常にオススメなプラグインになっています。


1つ目は、日本語ドキュメントが丁寧に書かれている点です。素晴らしい。

$ curl https://raw.github.com/t9md/vim-smalls/master/README-JP.md


2つ目は、一つのプラグインで、各種モードに対応している点です。


Vimには、ノーマルモードやビジュアルモードがありますが、このプラグインは、ノーマルモード上での移動やビジュアルモード上での移動(選択)に対応しています。


そして、このプラグイン自体が独自のモードを搭載し、操作性とカスタマイズ性の向上を図っています。


3つ目は、多機能な点です。


Vimでの移動については、このプラグインがあれば、ほぼ完璧なまでに便利になります。


もちろん、ここでいう移動というのは、各種モードでの移動を含みます。


唯一気になる点と言ったら、初動に僅かな間が生じるというところでしょうか。


もちろん、独自モードを搭載するためには、仕方ないこととは思いますが、この辺でユーザーの好みが分かれそうです。


vim-smallsのインストール方法



NeoBundle 't9md/vim-smalls'


:so $MYVIMRC | NeoBundleInstall


または、

$ mkdir -p ~/.vim/plugin

$ cd !$ && git clone https://github.com/t9md/vim-smalls



vim-smallsの設定方法



"" vim-smalls {{{
" Normal モードの 's' で発動
nmap s <Plug>(smalls)
" visual モードや、operator モードからも呼び出したい場合は以下も設定する。
omap s <Plug>(smalls)
xmap s <Plug>(smalls)
"" 2文字入力後に自動でexcursion-modeに入る
"let g:smalls_auto_excursion_min_input_length = 2
"" }}}



vim-smallsの具体的な使い方



基本的な移動方法



ノーマルモード、またはビジュアルモードでsを押した後、移動したい文字列を入力します。


文字列を入力した後は、 Tabを押し、 excursion-modeに入ります。


ここで、 Tabを押していくと、次の候補に移動します。


また、このモードでは、 hjklでの候補選択が可能です。


最後に、<C-e>などでモードを抜けます。


ジャンプキーを表示させるには、候補を入力した後、;を押します。


応用的な移動方法



fのような使い方をしたければ、 s, {char}, Enterで最初の候補に移動できます。しかし、これについては、 clever-f.vimがオススメです。


また、 excursion-modeに直接入ることもできます。これについては、独自のキーを設定しなければなりませんが、 clever-f と同じようなことができます。

" vim-smalls / excursion-mode
nmap <C-e> <Plug>(smalls-excursion)
" 文字数を設定する
let g:smalls_auto_excursion_min_input_length = 1



文字数を設定することも出来ます。例えば、候補を2文字で指定したい場合は、g:smalls_auto_excursion_min_input_lengthの値を 2 にします。

let g:smalls_auto_excursion_min_input_length = 2


個人的には、基本、<C-e>+{char2}+;の2文字指定で使ってるのと、ビジュアルモードで使ってます。


参考:
https://github.com/t9md/vim-smalls/blob/master/README-JP.md