次のことをしたい場合がいくつかあります
ファイル内:
1234
カーソルを1桁目に置いて、Ctrl-Aを使用して桁をインクリメントし、次のようにします。
2234
それ以外の
1235
これを行うための固有のvimコマンドはありますか?
それ以外の場合は、簡単なスクリプトを設定する必要があります。
- 先頭と末尾のスペースで数字を囲みます
- Ctrl-Aでインクリメント
- 先頭と末尾のスペースを削除する
そのように、それからキーにマップしますか?
次のことをしたい場合がいくつかあります
ファイル内:
1234
カーソルを1桁目に置いて、Ctrl-Aを使用して桁をインクリメントし、次のようにします。
2234
それ以外の
1235
これを行うための固有のvimコマンドはありますか?
それ以外の場合は、簡単なスクリプトを設定する必要があります。
そのように、それからキーにマップしますか?
インクリメント関数は、ほとんどのvimコマンドと同様に先頭の数字を取ります。 あなたが望むように1000 ctrl+a
戻ってきます。2234
すべての番号が4桁の番号である場合、これは機能します。またはr2
、カーソルの下の現在の文字を。に置き換えるを使用することもできます2
が、これは具体的すぎる可能性があります。
スクリプトが必要な場合は、マクロを記録できます。
qaa[space][esc]h[ctrl+a]lx
内訳:
qa
-q
マクロの記録を開始し、登録するために保存しますa
a[space][esc]
-番号の後にスペースを追加します
h
-番号に戻ります
ctrl+a
-1つ追加します
lx
右に移動してスペースを削除します。
ctrl+a
お気づきのように、関数は数値全体に作用し、常に1を追加するため、先頭にスペースを追加する必要はありません。
あなたはこれをとして行うことができますs<C-r>=<C-r>"+1<Enter>
。
次に、それを次のような別のマップにマップできます(この法線マップにsを挿入するnnoremap g<C-a> s<C-r>=<C-r>"+1<cr>
にはを使用する必要があります)。Ctrl-vCtrl-r<C-r>
s
-カーソルの下の文字を削除して挿入を開始します
<C-r>=
-式の評価を開始します。
<C-r>"
-名前のないレジスタの内容を
これらの詳細については、:helpi_CTRL-rを参照してください。
+1<Enter>
-値に1を加算して、コマンドを完了します。