我有一个带有连续文本的采访记录。有时,会写上说话人的名字(Aron:、Kalle:、Tomas:等)。我想在后跟冒号 (:)(我指定的名称)的每个名称之前插入一个换行符。
如何在 VIM 中编写脚本,以便当我运行命令时,它会遍历整个文本文件并插入那些额外的换行符?
换句话说,我想把这个变成:
Aron: bla, bla, bla
Kalle: yes, yes, yes
进入:
Aron: bla, bla, bla
Kalle: yes, yes, yes
我有一个带有连续文本的采访记录。有时,会写上说话人的名字(Aron:、Kalle:、Tomas:等)。我想在后跟冒号 (:)(我指定的名称)的每个名称之前插入一个换行符。
如何在 VIM 中编写脚本,以便当我运行命令时,它会遍历整个文本文件并插入那些额外的换行符?
换句话说,我想把这个变成:
Aron: bla, bla, bla
Kalle: yes, yes, yes
进入:
Aron: bla, bla, bla
Kalle: yes, yes, yes
试试这个简单的命令:
:g/^/pu_
g/^/
将匹配每一行,然后执行下面的命令。pu _
将来自寄存器_
(黑洞寄存器)的文本放在当前匹配行之后。您还可以使用以下:substitute
命令:
:%s/$/\r
另一个使用 external 的sed
:
:%!sed G
所有命令都具有相同的长度。选一个你喜欢的。
尝试这个
:%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