2012-12-14 18 views
-1

我一直是个可怕的人作为后期,当涉及到我的世界。我对它进行了过度修改,以至于我需要完全重写它们的全部ID。 唯一的问题是......这需要有一对夫妇的突出部分来他们一次重新写个小时,更何况,如果其中任何与原来的游戏碰撞。所以,为了节省时间,我想我会使用Vim,但是在阅读了这里的几篇有用的文章之后,我仍然只知道有关替换功能/命令的最小数量。这里就是我想要做的事: 替换此复杂更换gVim的

I:exampleModnamePath.id=16389 
I:exampleModnamePat2.id=19657 

等等

有了这个

I:exampleModnamePath.id=20000 
I:exampleModnamePath.id=20001 

等等

这持续了一段时间,那些谁回答,请你告诉我它是如何工作的,所以我不必一直提问这些问题?

回答

0

我不确定你用什么规则来选择哪个号码用于替换,但如果你所需要的只是一个新号码,不会与以前的号码发生冲突,你可以尝试更换第一个号码数字 与未使用的范围内的东西。像76389

更换16389点事做,你可以使用这个:s/Path.id=.\(.*\)/Path.id=7\1

这将搜索字符串Path.id =后跟单个字符,然后一组多个字符。 我将用字符串Path.id = 7和先前选择的组替换它。

你可以使它更selectiv添加字母前Path.id只匹配特定类型的路径。

1

,请过目:

:let g:num = 1 
:g/\.id=\d\+$/exec 's!\.id=\d\+$!.id='.g:num.'! | let g:num=g:num+1' 

这稍微简化了我的代码版本(重新)在电子书编号章节。

理念简而言之:使用:g运行的东西在受影响的线路;使用:exec生成/运行新的替代命令并对计数器进行递增。尝试过一次,并惊奇地发现这个窍门奏效。受到我以前玩:g//s///组合的启发。