如何在vim中合并奇数行和偶数行?

时间:2017-04-02 08:33:26

标签: regex linux vim

为了在两种方法中合并奇数行和偶数行。 一个使用命令:s,另一个使用命令:g:s 这是我们的功课,我无法从谷歌得到适当的答案 我找到了第一个,这意味着我可以使用命令:s来解决它:

:%s/\(^.*$\)\n\(^.*$\)/\1 \2

我怎样才能使用命令:d:s来解决它?

BEFORE:

 1 aa  
 2 bb  
 3 abc  
 4 abc  
 5 an apple  
 6 is a bug   
 7 mazic  
 8 homework!  
 9 try a time  
10 dodo

AFTER:

 1 aa bb  
 2 abc abc  
 3 an apple is a bug  
 4 mazic homework!  
 5 try a time dodo  

感谢大家,在课前我已经知道如何解决这个问题 :g/\(^.*$\)\n\(^.*$\)/s//\1 \2

2 个答案:

答案 0 :(得分:1)

你可以做的是: 将光标移动到要添加下一行的行号,然后在正常模式下键入以下命令。

:s/\n/ /

另一种方法是转到特定行并按SHIFT + V然后在下面输入命令:

:'<,'>s/\n/, /

请注意,当您处于可视模式并按:然后:'&lt;,'&gt;将自动输入。你只需要在那之前键入正则表达式。

在上述两个命令中,都不需要g,因为它不会产生任何影响,因为每行只有一个\ n。

答案 1 :(得分:1)

您不需要在这里使用:substitute,这是一个特殊的命令:join

您可以将Ex命令与:global一起使用,使用^作为匹配所有行的模式:

:global/^/join

或使用较短的普通模式变体J

:%normal! J