使用VIM插入额外的换行符

时间:2012-10-11 00:40:07

标签: vim text-manipulation

我有一份带有连续文字的采访记录。有时,会说出来的人的姓名(Aron:,Kalle:,Tomas:等)。我想在每个名称之后插入换行符,后面跟冒号(:)(我指定的名称)。

如何在VIM中编写脚本,以便在运行命令时,它会遍历整个文本文件并插入那些额外的换行符?

换句话说,我想转此:

Aron: bla, bla, bla
Kalle: yes, yes, yes

成:

Aron: bla, bla, bla

Kalle: yes, yes, yes

2 个答案:

答案 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