我有一份带有连续文字的采访记录。有时,会说出来的人的姓名(Aron:,Kalle:,Tomas:等)。我想在每个名称之后插入换行符,后面跟冒号(:)(我指定的名称)。
如何在VIM中编写脚本,以便在运行命令时,它会遍历整个文本文件并插入那些额外的换行符?
换句话说,我想转此:
Aron: bla, bla, bla
Kalle: yes, yes, yes
成:
Aron: bla, bla, bla
Kalle: yes, yes, yes
答案 0 :(得分:5)
尝试这个简单的命令:
:g/^/pu_
g/^/
将匹配每一行,然后执行下面的exec命令。pu _
将来自寄存器_
(黑洞寄存器)的文本放在当前匹配的行之后。 您还可以使用:substitute
命令:
:%s/$/\r
另一个使用外部sed
:
:%!sed G
所有命令都具有相同的长度。选一个你喜欢的。
答案 1 :(得分:0)
试试这个
:%s#^\(\w*:\)#\r\1#g
- % : serach in all lines
- s : search and replace command
- # : separators (I perfer '#' to '/')
- \(\w*:\) : grep your required format (Aron:, Kalle:, Tomas: etc.) and store in \1
- \r : for inserting a line
- g : global search and replace