39

我在 java 中有一个准备好的语句,我在前面添加了一个参数。长话短说,我必须采用大量的 set 方法并将它们的第一个参数增加 1。

我想要一种快速搜索和替换匹配所有数字的方法,然后将它们加一。

4

3 回答 3

62

弄清楚了。

%s/\d\+/\=(submatch(0)+1)/g

http://vim.wikia.com/wiki/Using_an_expression_in_substitute_command

于 2012-05-02T20:14:54.763 回答
14

您需要知道的唯一正则表达式是\d.

:g/\d/exe "normal! \<C-A>"
于 2012-05-02T20:18:01.317 回答
1

我误解了这个问题,即询问如何在每行上将数字加一,即

var1
var1
var1

成为

var1
var2
var3

所以我想我会为此发布一个答案。@user606723 提供的链接显示您可以使用(例如在第 1 行和第 3 行之间)执行此操作:

:let counter=0|1,3g//let counter=counter+1|s/^/\=counter."\t"
于 2018-03-26T11:19:20.163 回答