使用VIM插入额外的换行符

使用VIM插入额外的换行符,vim,text-manipulation,Vim,Text Manipulation,我有一份连续文本的采访记录。有时,说话的人的名字会被写下来(阿隆:,卡勒:,托马斯:等等)。我想在每个名称后面跟一个冒号(:)(我指定的名称)之前插入一个换行符 如何在VIM中编写脚本,以便在运行命令时,它遍历整个文本文件并插入额外的换行符 换言之,我想把这个转变为: Aron: bla, bla, bla Kalle: yes, yes, yes 进入: 尝试以下简单命令: :g/^/pu_ g/^/将匹配每一行,然后执行下面的命令 pu将把寄存器(黑洞寄存器)中的文本放在当前匹配行之后

我有一份连续文本的采访记录。有时,说话的人的名字会被写下来(阿隆:,卡勒:,托马斯:等等)。我想在每个名称后面跟一个冒号(:)(我指定的名称)之前插入一个换行符

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

换言之,我想把这个转变为:

Aron: bla, bla, bla
Kalle: yes, yes, yes
进入:


尝试以下简单命令:

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

您还可以使用
:substitute
命令:

:%s/$/\r

还有一个使用外部
sed

:%!sed G


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

试试这个简单的命令:

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

您还可以使用
:substitute
命令:

:%s/$/\r

还有一个使用外部
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
试试这个

:%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

谢谢如果每次出现字符串“Aron:”时我只想插入换行符怎么办?谢谢。如果我只想在每次出现字符串“Aron:”时插入换行符,那么我是否用Aron:?\w*替换为单词say Aron,因此“\w*:”应替换为Aron:。kev的ans在每一行上执行插入,我想这不是您的要求。在这里,我们对所需的模式进行grep,并在模式匹配之前仅插入一行新行。因此,我是否将w*替换为Aron:?\w*与单词say Aron匹配,因此“\w*:”应替换为Aron:”。kev的ans在每一行上执行插入,我想这不是您的要求。在这里,我们对所需的模式进行grep,并在模式匹配之前仅插入一行新行。