我有以下 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;
...
Run Code Online (Sandbox Code Playgroud)
用方括号选择可视块,我想将每个数字增加 5。我该怎么做?
Mar*_*rco 16
在视觉上突出显示括号中的文本:
Ctr+ V2jl
将每个数字增加 5:
:norm 5
Ctr+ V Ctr+A 说明:
:norm
在正常模式下执行整个命令。该Ctr+V是必要的,否则将光标跳回到行的开始。
Ctr+A将一个数字加 1,并进行 5 次。按下冒号后会自动插入可视范围。
编辑: 正如 Stephane 正确指出的那样,前面的代码递增在任何行上找到的第一个数字。这是一个更好的解决方案:
%s/\[\zs\d\+\ze\]/\=(submatch(0)+5)
Run Code Online (Sandbox Code Playgroud)
它将括号内的所有整数加五。的\zs
和\ze
被用于排除从匹配括号并submatch
返回匹配数。
Ser*_*ujo 12
你不需要离开视觉模式来增加数字,只需使用 g
5 g Ctrl-a
5 ......... 5 times
g ......... globally
Ctrl-a .... increase numbers
Run Code Online (Sandbox Code Playgroud)
实际上,我在vimgolf挑战中学会了这个技巧。