【发布时间】:2017-09-09 12:47:11
【问题描述】:
如何量化 vim 搜索/替换表达式的替换部分?
:%s/x\{4\}/yyyy/g
将每次出现的 4 个 x 替换为 4 个 y。
:%s/x\{4\}/y\{4\}/g
用“y{4}”替换4个x
如何修改它,这样我就不必插入 4 个单独的 y,而是“量化”单个 y。
【问题讨论】:
如何量化 vim 搜索/替换表达式的替换部分?
:%s/x\{4\}/yyyy/g
将每次出现的 4 个 x 替换为 4 个 y。
:%s/x\{4\}/y\{4\}/g
用“y{4}”替换4个x
如何修改它,这样我就不必插入 4 个单独的 y,而是“量化”单个 y。
【问题讨论】:
解决方案似乎比它的价值更麻烦:
:%s/w\{4}/\=repeat('y',4)/g
【讨论】:
%s/\(x\{4\}\)/\=repeat('y',4).submatch(1)/g
OP 写道:
让替换子句重复 4 年的正确格式是什么 后跟 find 子句中的字符(反向引用),即 如何将 4 x 替换为 4 y
回答
将所有出现的xxxx 替换为四个y,后跟一个反向引用
%s/\(x\{4\}\)/\=repeat('y',4).submatch(1)/g
之前
hello xxxx there xxxx end
之后
hello yyyyxxxx there yyyyxxxx end
感谢 @romainl 提供原始答案,感谢 @Ingo Karkat 提供answering a similar question
【讨论】: