-1

说到 Minecraft,我最近一直是个糟糕的人。我对它进行了过度修改,以至于我需要完全重写它们的 ID。唯一的问题是……重写一次大约需要几个小时,更不用说它们中的任何一个是否与原始游戏发生冲突。所以,为了节省时间,我想我会使用 Vim,但是在阅读了这里的几篇有用的帖子之后,我仍然对替换功能/命令知之甚少。这就是我想要做的:替换这个

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

等等。

有了这个

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

等等。

这会持续一段时间,对于那些回答的人,你能告诉我它是如何工作的,所以我不必一直问这些问题吗?

4

2 回答 2

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///组合的启发。

于 2012-12-18T01:52:11.507 回答
0

我不确定您使用什么规则来选择要用于替换的号码,但如果您只需要一个不与以前的号码冲突的新号码,您可以尝试将第一个数字替换为 a未使用的范围。比如用 76389 替换 16389

为此,您可以使用此:s/Path.id=.\(.*\)/Path.id=7\1

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

您可以使其更具选择性,在 Path.id 之前添加字母以仅匹配某些类型的路径。

于 2012-12-14T15:20:14.627 回答