0

コードのローカル領域での移動を促進するために、ビジュアル モードとノーマル モードでマッピングを作成しました。1+方向キーを押すと、1 ではなく 10 に再マッピングされます。

vmap 1j 10j | vmap 1k 10k | vmap 1h 10h | vmap 1l 10l
nmap 1j 10j | nmap 1k 10k | nmap 1h 10h | nmap 1l 10l

これはうまくいきます。しかし、速く入力しているときは、うっかり 1 ではなく 11 を入力してしまうので、'1j' の代わりに '11j' を入力してしまいます。これにより、11行ではなく110行下に移動しています。

この間違いを犯したときに、110 ではなく、特定の方向に 11 だけ移動したいと思います。

Vim はこれを 1 と解釈し、マッピングを追加して 110 を取得します。同様に、「21j」と入力すると、「210j」と解釈されます。

4

2 に答える 2

1

これを修正するには、以前に入力したカウントを中止する必要があります。<C-\><C-n>通常モードと同様<Esc>に動作しますが、保留中のカウントがない場合はビープ音を回避します:

nmap 1j <C-\><C-n>10j

ビジュアル モードの場合、次のように選択を再確立する必要がありますgv

vmap 1j <C-\><C-n>gv10j
于 2013-09-06T07:05:16.083 に答える