如何在vi中join两行?

我在下面的文本文件中有两行:

S<Switch_ID>_F<File type> _ID<ID number>_T<date+time>_O<Original File name>.DAT 

我想在下面的vi中追加两行:

 S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT 

第二行被删除,第二行的内容被追加到第一行。

我怎么能在vi中使用命令模式呢?

Shift + J从当前行中删除行改变字符,所以通过在行中的任意位置按“J”,您可以按照自己想要的方式合并当前行和下一行。

Vi还是Vim?

无论如何,下面的命令在“不兼容”模式下适用于Vim。 也就是说,我想,几乎是纯粹的六。

 :join! 

如果你想从正常的命令使用它

 gJ 

使用'gJ',您可以按照原样join – 不添加或删除空格:

 S<Switch_ID>_F<File type> _ID<ID number>_T<date+time>_O<Original File name>.DAT 

结果:

 S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT 

用'J'命令你将有:

 S<Switch_ID>_F<File type> _ID<ID number>_T<date+time>_O<Original File name>.DAT 

注意type>_ID之间的空格。

这应该做到这一点:

J

在vi中, J (即shift-j)或者:join大部分应该做你想做的事情。 请注意,他们调整空白。 特别是,在很多情况下,最终会在两个连接线之间留出空间,如果第二行缩进,缩进将在连接之前被删除。

在vim中你也可以使用gJ (g,然后shift-j)或者:join! 。 这些将连接线而不做任何空白的调整。

在vim中,请参阅:help J了解更多信息。

只需用“”replace“ \n ”。

在vi / Vim文件中的每一行:

 %s/>\n_/>_/g 

如果你想确认每一个更换:

 %s/>\n_/>_/gc 

如果你想join选定的行(你是在视觉模式下),那么只要按gJ可以join你的行,而且没有任何空格。

这在vi / Vim Stack Exchange站点上有更详细的描述。

在第一行按Shift + 4 (“$”),然后按Shift + j (“J”)。

如果您需要帮助,请进入vi,然后按F1

在Vim中你也可以使用gJ

连接两条线而不将光标放在该线上的另一种方法是:

 :6,6s#\n## 

这里6是另一条线将被join的线号。 要显示行号,请使用:set nu

如果我们在下一行应该join的光标上,那么:

 :s#\n## 

在这两种情况下,我们不需要g :s#\n##g ,因为在一行上只有一个\n存在。