1

我有大量的文本格式如下:

123123|abcabc|text
text
text
123124|abcabc|text
textext
text

目标是按如下方式排列文本:

123123|abcabc|texttexttext
123124|abcabc|texttext text

这样每个条目都放在自己的行上,然后是回车符,将其与下一行分隔开。

我试图做一些类似搜索|符号的事情,然后我制作了一个宏来搜索每个第三个|符号,转到前一个单词,然后插入一个回车。

nnnbi<CR><Esc>

但我无法让它重复。我是一个非常新的用户,任何方向都会非常有帮助。

非常感谢!

4

2 回答 2

3

我认为这个命令可以帮助你:

g/|/j3

如果您不想在加入后有空格,请添加“bang [!]”。

g/|/j!3

详情见:h :join_

编辑

那么这条线应该可以工作

:v/|/-1 j!

或者其他选项也可以:

:v/|/normal! I^U

请注意,^U您应该按Ctrl-vCtrl-u

于 2013-05-27T21:29:49.597 回答
0

一种方法是使用:v模式|,该模式将为不包含管道的每一行执行下一个命令。该命令将X删除光标位置之前的字符,并且由于光标始终位于第一行,因此它会删除将连接两行的前一个换行符,依此类推直到结束:

:v/|/normal X

它产生:

123123|abcabc|texttexttext
123124|abcabc|texttextexttext
于 2013-05-27T21:47:04.943 回答