以下是我正在使用的原材料:
First.
This is the second line.
The third.
我想在文本中插入“在4个字符后插入一些东西”,使其成为
Firsinsert something behind 4 charactert.
Thisinsert something behind 4 character is the second line.
The insert something behind 4 characterthird.
:%s/^.\{4}/insert something behind 4 character/g
substitute
命令不插入文本。如何在每行的第4个字符后插入此字符串?
答案 0 :(得分:4)
非常接近。告诉vim开始替换模式的 end :
:%s/^.\{4}\zs/insert something behind 4 character/
请注意,我没有使用g
标记:它在这里没有区别,因为模式在一行中不会匹配多次。
当然,还有其他方法可以做到,例如
:%s/^.\{4}/&insert something behind 4 character/
也就是说,将前四个字符替换为自己的副本,然后是新文本。或
:%s/\%5c\@=/insert something behind 4 character/
或
:%s/\%5c\&/insert something behind 4 character/
(如果线上只有4个字符,则最后两个不起作用。)
:help sub-replace-special
:help /\zs
:help /\&
:help /\%c
:help /\@=
,一般来说,
:help pattern
答案 1 :(得分:2)
使用&
匹配以插入匹配的部分
:%s/^.\{4}/&insert something behind 4 character/g
答案 2 :(得分:2)
由于其他人已经建议如何使用替换,我会提到视觉模式作为替代:
t
中的First
。答案 3 :(得分:1)
使用以下正则表达式,您将能够完成从每行的第四个字符开始插入。
:%s/\(^.\{4}\)/\1insert something behind 4 character/g