对于Minecraft来说,我最近一直是一个可怕的人。我已经过度修改了它,我需要完全重写它们的ID。 唯一的问题是......它需要大约几个小时才能重新写入它们,更不用说它们中的任何一个是否与原始游戏相冲突。因此,为了节省时间,我想我会使用Vim,但在阅读了这里的几个有用的帖子后,我仍然只知道关于替换功能/命令的最小数量。这是我正在尝试做的事情: 替换此
I:exampleModnamePath.id=16389
I:exampleModnamePat2.id=19657
等
有了这个
I:exampleModnamePath.id=20000
I:exampleModnamePath.id=20001
等
这种情况持续了一段时间,对于那些回答的人,请告诉我它是如何工作的,所以我不必一直问这些问题吗?
答案 0 :(得分: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///
组合的启发。
答案 1 :(得分:0)
我不确定您使用的规则是选择用于替换的号码,但如果您需要的话 只是一个新的数字,不会与以前的数字冲突,您可以尝试更换第一个数字 在一个未使用的范围内的东西。有点像用76389替换16389
为此,您可以使用此:s/Path.id=.\(.*\)/Path.id=7\1
那将搜索字符串Path.id =后跟一个字符,然后搜索一组更多字符。 我将用字符串Path.id = 7和之前选择的组替换它。
你可以选择在Path.id之前添加字母以便仅匹配某些类型的路径。