これを設定ファイルに書くだけ!
設定ファイルは自分で特に何も変えてなければ~/.vimrc
にあるはず。
なくても作れば勝手に読まれるはず。
nnoremap<S-k>10<UP>nnoremap<S-j>10<DOWN>nnoremap<S-h>10<LEFT>nnoremap<S-l>10<RIGHT>vnoremap<S-k>10<UP>vnoremap<S-j>10<DOWN>vnoremap<S-h>10<LEFT>vnoremap<S-l>10<RIGHT>
これを反映してカーソル移動をh
, j
, k
, l
ではなくてH
, J
, K
, L
で行うと、カーソルがいつもの10倍動きます!!
以下蛇足
設定内容
nmap
はnormal
モードの、vmap
はvisual
モードのキー設定を示していて、<S-k>
はshift + k
を意味しています。<UP>
はカーソルを上に動かすことを意味していて、vim は数字を付けるとその回数分繰り返されるので10<UP>
でカーソルが 10 動きます。
設定ファイルを書かなくても、普通に vim を起動してnormal
モードで15j
とかやれば下に 15 カーソルが動きます。
それだけです。
これの強力さ
少し意識して vim を使う様にすると、案外1単語足したい消したいとか()
の中だけ消したいとかが自然と出来る様になります。
例えば本当によくある操作として
public void foo(...
にstatic
を入れてpublic static void foo(...
にしたいString foo(String x)
の引数を消してString foo()
にしたい
とかがあります。
これって一例ですけど
public
のどこでも良いからカーソルを乗せる ->e
と押すとカーソルがpublic
のc
の部分に行く ->a
でカーソルの右に字を書く(つまりe
,a
)void
のどこでも良いからカーソルを乗せる ->b
と押すとカーソルがvoid
のv
の部分に行く ->i
でカーソルの左に字を書く(つまりb
,i
)(String x)
のうちカーソルをとりあえず()
の中に移動する ->di(
で括弧の中を全部消す
みたいな操作でスカっと出来ちゃいます。本当です。
vim は単語や括弧の中身を扱ったり最寄りの半角スペースまで云々とかがものすごい得意なので、カーソルは割と雑に合わせても処理の起点として全然問題にならないからです。
なんで 10 か
いろいろ試してそうなっただけ。
ただ横移動は上にあるようにテキトーに単語に乗れば良いので、5 だとちょっと足りなかった。
イメージとしてはxxxxxxx yyyyyyy zzzzzzz
で先頭からL
, L
として全単語に1度ずつ乗るくらいにしたかった。
上下移動は 4 行くらいなら目測でわかるから4k
とか出来るし、それよりパッと見大きければK
してjjj
とかすれば良い。
だから上下とも 10 が丁度良かった。
本来のH
, J
, K
, L
本来のコマンドを潰してることになるので一応ふわっと解説。
ちなみにtab h H
とかやるとマニュアル開くよ。
H
-> カーソルが vim に映ってる範囲の一番上に行く感じJ
-> カーソル行の改行を無くして下の行と連結する感じK
-> マニュアルを開く感じL
-> カーソルが vim に映ってる範囲の一番下に行く感じ
個人的には全部潰して良いので問題なし