我有一个非常大的文本文件,我已经在VIM中打开了它,我需要将符合某些条件的数字加1。例如:
Comment 1
Comment 2
[p2,0,0,115]Live! ConcertGrand
[p2,2,104,5]Live! PopGrand
[p2,3,104,4]Live! RockPiano
[p2,4,104,3]Live! AmbientPiano
End of file.我想把这个(通过在列表的第二个元素中添加1)转换为
Comment 1
Comment 2
[p2,1,0,115]Live! ConcertGrand
[p2,3,104,5]Live! PopGrand
[p2,4,104,4]Live! RockPiano
[p2,5,104,3]Live! AmbientPiano
End of file.请问我如何在vim中做到这一点?
我试过了:
%s/\[p\zs\d\+\(,\d\+\)\=/\=(1+str2nr(submatch(1)))/但它不起作用。任何帮助都将不胜感激。政务司司长
发布于 2017-05-19 13:51:39
你真的需要通过搜索和替换来做到这一点吗?因为有内置的加法和减法功能。
:h CTRL-ACTRL-A:将计数添加到光标或光标后面的数字或字母字符。
{Visual}CTRL-A:向突出显示的文本中的数字或字母字符添加计数。{不在Vi中}
因此,基本上可以在数字列上使用视觉块选择,然后按CTRL-A,它会将所有数字加1
如果它比较复杂,你可以使用宏
https://stackoverflow.com/questions/44061943
复制相似问题