Vim

Vim - 如何增加視覺塊中的每個數字?

  • August 2, 2021

我有以下 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。我該怎麼做?

直覺地突出顯示括號中的文本:

Ctr+ V2jl

將每個數字增加五:

:norm 5``Ctr+ V Ctr+A 說明:

:norm在正常模式下執行整個命令。Ctr+是必需的V,否則游標會跳回到行首。 Ctr+A將數字加 1,此操作執行 5 次。按下冒號後會自動插入可視範圍。

編輯: 正如斯蒂芬正確指出的那樣,前面的程式碼增加了在任何行上找到的第一個數字。這是一個更好的解決方案:

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

它將括號內的所有整數加五。\zsand\ze用於從匹配中排除括號並返回submatch匹配的數字。

引用自:https://unix.stackexchange.com/questions/72051