最近在Minecraft方面,我一直是一个糟糕的人。我已经过度修改了它,以至于我需要完全重写它们的 ID。唯一的问题是...重写一次大约需要几个小时,更不用说它们中的任何一个是否与原始游戏发生冲突。所以,为了节省时间,我想我会使用 Vim,但在阅读了这里的几篇有用的文章后,我仍然对替换功能/命令知之甚少。这是我正在尝试做的:替换此
I:exampleModnamePath.id=16389
I:exampleModnamePat2.id=19657
等。
有了这个
I:exampleModnamePath.id=20000
I:exampleModnamePath.id=20001
等。
这种情况持续了一段时间,对于那些回答的人,你能告诉我它是如何工作的吗,这样我就不必一直问这些问题了?
供您阅读:
:let g:num = 1
:g/.id=d+$/exec 's!.id=d+$!.id='.g:num.'! | let g:num=g:num+1'
这是我在电子书中(重新)编号章节的代码的略微简化版本。
简而言之:使用:g
在受影响的行上运行某些内容;使用:exec
生成/运行新的替换命令并增加计数器。试了一次,惊讶地发现这个技巧奏效了。灵感来自我之前玩:g//s///
组合。
我不确定您使用什么规则来选择用于替换的数字,但如果你需要的话只是一个新数字,不会与以前的数字冲突,您可以尝试替换第一个数字在未使用的范围内使用某些东西。类似于将 16389 替换为 76389
为此,您可以使用此:s/Path.id=.(.*)/Path.id=71
这将搜索字符串 Path.id=,后跟一个字符,然后是一组更多字符。我将用字符串 Path.id=7 和之前选择的组替换它。
您可以通过在 Path.id 之前添加字母以仅匹配某些类型的路径来使其更具选择性。