Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 在模式前插入n个字符_Vim - Fatal编程技术网

Vim 在模式前插入n个字符

Vim 在模式前插入n个字符,vim,Vim,我有一个文本文件,我想在字符串“LABEL”之前插入20个空格。我想用vim来做这个 我希望像s/LABEL/{20}LABEL/这样的东西能起作用。没有 这个问题很接近我想要做的,但是我不能在“=repeat()”后面加上“LABEL” %s/LABEL/\=重复(“”,20)/g有效 %s/LABEL/\=repeat(“”,20)LABEL/g给了我E15:无效表达式:repeat(“”,20)LABEL 如何让vim计算=repeat()而不是=repeat()LABEL?在\=之后,需

我有一个文本文件,我想在字符串“LABEL”之前插入20个空格。我想用vim来做这个

我希望像
s/LABEL/{20}LABEL/
这样的东西能起作用。没有

这个问题很接近我想要做的,但是我不能在“=repeat()”后面加上“LABEL”

%s/LABEL/\=重复(“”,20)/g
有效

%s/LABEL/\=repeat(“”,20)LABEL/g
给了我
E15:无效表达式:repeat(“”,20)LABEL


如何让vim计算
=repeat()
而不是
=repeat()LABEL

\=
之后,需要一个字符串。并且
标签
不是有效字符串

%s/LABEL/\=repeat(' ',20).'LABEL'/g
顺便说一句,由于
\ze
,您不需要重复搜索内容

%s/\zeLABEL/\=repeat(' ',20)/g
请注意,如果需要对齐各种内容,可以使用
printf()

%s#label1\|other label#\=printf('%20s', submatch(0))#