Answers:
Shift+ J删除当前行中的换行字符,因此,通过在行中的任何位置按“ J”,您可以按需要的方式组合当前行和下一行。
GJ
in vim
将移动到最后一行,然后尝试将其连接到下一行,join命令唯一没有意义的地方。是的,我觉得这很有趣:-)
Vi还是Vim?
无论如何,以下命令在“不兼容”模式下适用于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
。
g/pattern/join
在VIM 中有效,而在VIM g/pattern/J
中无效。可能会帮助一些未来的人。
在vi中,J
(即Shift+ J)或:join
应该做大部分事情。请注意,它们会调整空白。特别是,在许多情况下,最后会在两条连接的线之间留一个空格,如果缩进第二行,则缩进将在连接之前被删除。
在Vim中,您也可以使用gJ
(G,然后Shift+ J)或:join!
。这些将连接行,而无需进行任何空格调整。
在Vim中,请参阅参考资料:help J
。
gJ
,并J
为这两个昌光标到结合点,但:join!
和:join
不。
如果要加入选定的行(处于可视模式),只需按 gJ
合并即可合并行,不带任何空格。
在vi / Vim Stack Exchange网站上对此进行了更详细的描述。
在第一行上按Shift+ 4(“ $”),然后按 Shift+ j(“ J”)。
如果需要帮助,请进入vi,然后按F1。
连接两行而不将光标置于该行的另一种方法是:
:6,6s#\n##
这里的6是另一行将加入的行号。要显示行号,请使用:set nu
。
如果我们在光标处应该连接下一行的位置,则:
:s#\n##
在这两种情况下,我们都不需要g
like :s#\n##g
,因为在一行上仅\n
存在一个。
Shift+V
选择最后一行除外的所有要连接的行,然后:'<,'>s/\n/, /
在此示例中连接行,同时在每个行的末尾加上逗号和空格,这样比较容易。请注意,当选定某项并且我们:
以普通模式键入时,'<,'>
该命令将自动出现在命令行中。