VimTutorは最初のレッスンで次のように述べています。
注:カーソルキーも機能するはずです。しかし、hjklを使用すると、慣れればはるかに速く動き回ることができます。本当に!
しかし、私はそれらの間にまったく違いはありません。hjkl v / sの矢印キーを使用することには本当に違いがありますか?
hjklを使用するためにタッチタイプの位置から手を動かす必要はありませんが、矢印キーを使用する場合はそうします。
重要なのは、カーソルを移動するための少し良い方法として「hjkl」キーを使い始めることですが、実際にはそうmotions
です。
h
1文字左の動きj
1行下の動きk
一列に並ぶ動きl
1文字右に動きますしたがって、たとえば、削除演算子を使用するとd
、dl
現在の文字をdh
削除し、前の文字をdj
削除し、現在の行とその下の行をdk
削除し、現在の行とその上の行を削除します。もちろん、、、、、および任意の演算子y
についてc
もV
同じことが言えます。gU
別の例は分割ウィンドウです。Control-w+sとControl-w+を使用していくつかのウィンドウを作成し、v信頼できるhjklを使用してウィンドウ間を移動したり、Control-w+hウィンドウを左に移動したり、 Control-w+jウィンドウを下に移動したりできます。
つまり、矢印キーよりも優れているだけではありません。Vimについての理解が深まるにつれて、hjklキーを他のコマンドとさまざまな方法で組み合わせることができることを学び、それらを使用できることを嬉しく思います。
実際、h j k l
キーを使用すると、矢印キーに到達する必要があるときにキーボードの右手の動きの多くを回避するための良い習慣になりますが、vimを使用してテキストファイルをナビゲートするより効率的な方法があります。
f <char>
<char>
:現在の行で次に出現する文字に移動します。カーソルは文字の上に置かれます。t <char>
<char>
:現在の行で次に出現する文字に移動します。カーソルは文字の直前に置かれます。T
およびF
:この行で文字検索を後方に移動しますT
が、カーソルを文字の直後(または後方に考える場合は前)に置き、そのF
上にカーソルを置きます。/ <char> <Enter>
:行に関係なく、文字の次の出現に移動します。n
これを1回行った後、またはを押すN
と、次の前のオカレンスに移動します。? <char> <Enter>
:行に関係なく、文字の次の出現箇所に逆方向に移動します。n
次のオカレンス(後方)を検索N
し、前のオカレンスに移動します。{
および}
:段落をナビゲートします。段落は基本的に、空の行で分割されたブロックです。詳細については、を参照:help paragraph
してください。(
および)
:Sentences()を前後に移動し:help sentence
ます。文は、スペース、タブ、またはエンドラインでwords
終わる、. !
または後に続くグループです。?
e
:次にword
、カーソルを最後に置きますword
w
:次にword
、カーソルを先頭に置きますword
b
:戻る1 word
、カーソルを先頭に置きますword
ge
:戻る1 word
、カーソルを最後に置きますword
E W B
およびgE
:と同じe w b ge
ですが、WORD
。詳細については、を参照:help word
してください。使用やその他の動きの最初の良い習慣をh j k l
身に付け、矢印キーを避けたい場合は、家の中の.vimrcファイルの次の行を入力して無効にします。
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>