Vim - ビジュアルブロックの各数を増やす方法は?

Vim - ビジュアルブロックの各数を増やす方法は?

次のSQLがあります。

update am.PERMISSIONS set PRM_ORDER = 35 PRM_VISIBLE = b'1' where PRM_ID = 3;
update am.PERMISSIONS set PRM_ORDER = [35] PRM_VISIBLE = b'1' where PRM_ID = 7;
update am.PERMISSIONS set PRM_ORDER = [40] PRM_VISIBLE = b'1' where PRM_ID = 10;
update am.PERMISSIONS set PRM_ORDER = [45] PRM_VISIBLE = b'1' where PRM_ID = 11;
...

角かっこで囲まれたビジュアルブロックを選択し、各数字を5ずつ増やしたいと思います。どうすればいいですか?

ベストアンサー1

括弧内のテキストを視覚的に強調表示します。

Ctr+ V2jl

各数字を5ずつ増やします。

:norm 5Ctr+ V Ctr+A 説明:

:norm通常モードでフルコマンドを実行します。 +CtrV必要です。それ以外の場合、カーソルは行の先頭に戻ります。 Ctr+A数字に1を加えて合計5回。コロンを押すと、可視範囲が自動的に挿入されます。

編集する: Stephaneが正しく指摘したように、前のコードはすべての行で見つかった最初の数を増やします。より良い解決策は次のとおりです。

%s/\[\zs\d\+\ze\]/\=(submatch(0)+5)

括弧内のすべての整数に5を加算します。一致から括弧を除いて一致する数値を返すために\zs使用されます。\zesubmatch

おすすめ記事