带替换的 for 循环
for loop with substitution
我想通过 for 循环 作为替代命令范围:
for i in range(x, y) | is/$/foo/ | endfor
但我被Trailing characters: foo/ | endfor
击中了
Vim 报告的错误对于您命令中的实际问题有点误导。
实际问题是变量i
不能那样使用。整个替换必须与 :help expr-..
连接并传递给 :help :execute
。在这种情况下:
for i in range(x, y) | execute i .. 's/$/foo/' | endfor
如果您不这样做,is/$/foo/
中的 i
将被解释为文字 i
,因此您使用的命令是 :help :isearch
,而不是 :help :s
。 Vim 因此报告了对 :is
的误用,并且完全且正确地忽略了您的初衷。
然后还有另一个问题,与手头的问题无关::help :s
已经在一个范围内工作,因此没有真正需要循环:
execute x .. ',' .. y .. 's/$/foo/'
我想通过 for 循环 作为替代命令范围:
for i in range(x, y) | is/$/foo/ | endfor
但我被Trailing characters: foo/ | endfor
Vim 报告的错误对于您命令中的实际问题有点误导。
实际问题是变量i
不能那样使用。整个替换必须与 :help expr-..
连接并传递给 :help :execute
。在这种情况下:
for i in range(x, y) | execute i .. 's/$/foo/' | endfor
如果您不这样做,is/$/foo/
中的 i
将被解释为文字 i
,因此您使用的命令是 :help :isearch
,而不是 :help :s
。 Vim 因此报告了对 :is
的误用,并且完全且正确地忽略了您的初衷。
然后还有另一个问题,与手头的问题无关::help :s
已经在一个范围内工作,因此没有真正需要循环:
execute x .. ',' .. y .. 's/$/foo/'