如何在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
存在。