如何在vi中加入两行?

时间:2009-12-16 07:17:44

标签: vim vi

我在文本文件中有两行,如下所示:

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中使用命令模式呢?

9 个答案:

答案 0 :(得分:285)

Shift + J 从当前行中删除换行符,因此通过在行中的任何位置按“J”,您可以组合当前行和下一行你想要的方式。

答案 1 :(得分:57)

Vi或Vim?

无论如何,以下命令适用于'nocompatible'模式下的Vim。也就是说,我想,几乎是纯粹的vi。

:join!

如果您想从正常命令使用

gJ

使用'gJ'按原样连接行 - 不添加或删除空格:

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之间的空格。

答案 2 :(得分:21)

这应该这样做:

J

答案 3 :(得分:15)

在vi中,J(那是shift-j)或:join应该做你想要的,大部分。 请注意,它们会调整空格。特别是,在很多情况下,最终会在两条连接线之间留出空格,如果第二条线缩进,则在连接之前将删除缩进。 / p>

在vim中,您还可以使用gJ(g,然后是shift-j)或:join!。这些将在不进行任何空白调整的情况下连接线。

在vim中,请参阅:help J了解详情。

答案 4 :(得分:4)

只需将“\n”替换为“”。

在vi / Vim中,文档中的每一行:

%s/>\n_/>_/g

如果您想确认每次更换:

%s/>\n_/>_/gc

答案 5 :(得分:3)

如果你想加入选定的行(你处于可视模式),那么只需按gJ加入你的行,没有任何空格。

the vi/Vim Stack Exchange site更详细地描述了这一点。

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

在Vim中,您还可以使用gJ

答案 8 :(得分:1)

在不将光标放到该行的情况下连接两条线的另一种方法是:

:6,6s#\n##

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

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

:s#\n##

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