我有一个文本文件,我想在字符串“LABEL”之前插入 20 个空格。我想在 vim 中做到这一点。
我希望类似 s/LABEL/ {20}LABEL/
会工作。它没有。
这个SO问题接近我想要做的,但我不能在'=repeat()'之后加上'LABEL'。 Vim regex replace with n characters%s/LABEL/\=repeat(' ',20)/g
作品。%s/LABEL/\=repeat(' ',20)LABEL/g
给我 E15: Invalid expression: repeat(' ',20)LABEL
如何让 vim 进行评估 =repeat()
但不是 =repeat()LABEL
?
最佳答案
后 \=
, 一个字符串是期望的。和 LABEL
不是有效的字符串
%s/LABEL/\=repeat(' ',20).'LABEL'/g
顺便说一句,感谢
\ze
,您无需重复搜索的内容。%s/\zeLABEL/\=repeat(' ',20)/g
请注意,如果您需要对齐各种东西,您可以使用
printf()
反而%s#label1\|other label#\=printf('%20s', submatch(0))#
关于vim - 在模式前插入 n 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51249287/