在尝试使用Vim替换时,我注意到s/\w*/(&)/2
之类的行为与0,2s/\w*/(&)
相似。换句话说,具有g或i或c标志所在的数值(或根本没有标志),作为影响每一行第一次匹配的范围的最大限制。
E.g。运行上述两个版本将在下面的文本中产生相同的输出
alpha
beta
gamma
到
(alpha)
(beta)
gamma
然而,通过Vim docs for s_flags以及在线搜索我并没有在某处看到这一点。有没有其他人反对这一点和/或有一个完全正常的解释?
答案 0 :(得分:2)
来自:help:s,
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
...
When [count] is given, replace in [count] lines,
starting with the last line in [range]. When [range]
is omitted start in the current line.
...
换句话说,你的2是一个计数,而不是一个标志。从这个文档中不清楚这个空间是可选的,但它似乎是(并且我不会津津乐道重写它以明确这一点)。