1

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

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

换句话说,我想把这个变成:

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

进入:

Aron: bla, bla, bla

Kalle: yes, yes, yes
4

2 回答 2

5

试试这个简单的命令:

:g/^/pu_
  • g/^/将匹配每一行,然后执行下面的命令。
  • pu _将来自寄存器_(黑洞寄存器)的文本放在当前匹配行之后。

您还可以使用以下:substitute命令:

:%s/$/\r

另一个使用 external 的sed

:%!sed G

所有命令都具有相同的长度。选一个你喜欢的。

于 2012-10-11T00:52:43.910 回答
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
于 2012-10-11T07:13:07.923 回答