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。我該怎麼做?
直覺地突出顯示括號中的文本:
Ctr
+V
2jl將每個數字增加五:
:norm 5``Ctr
+V
Ctr
+A
說明:
:norm
在正常模式下執行整個命令。Ctr
+是必需的V
,否則游標會跳回到行首。Ctr
+A
將數字加 1,此操作執行 5 次。按下冒號後會自動插入可視範圍。編輯: 正如斯蒂芬正確指出的那樣,前面的程式碼增加了在任何行上找到的第一個數字。這是一個更好的解決方案:
%s/\[\zs\d\+\ze\]/\=(submatch(0)+5)
它將括號內的所有整數加五。
\zs
and\ze
用於從匹配中排除括號並返回submatch
匹配的數字。