我在文本文件中有两行,如下所示:
S<Switch_ID>_F<File type>
_ID<ID number>_T<date+time>_O<Original File name>.DAT
Run Code Online (Sandbox Code Playgroud)
我想在vi中添加两行,如下所示:
S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT
Run Code Online (Sandbox Code Playgroud)
第二行被删除,第二行的内容被附加到第一行.
我怎么能在vi中使用命令模式呢?
GJ.*_*GJ. 298
Shift+ J从当前行中删除换行符,因此通过在行中的任何位置按"J",您可以按照所需的方式组合当前行和下一行.
Max*_*Kim 59
Vi还是Vim?
无论如何,以下命令适用于'nocompatible'模式下的Vim.也就是说,我想,几乎是纯粹的vi.
:join!
Run Code Online (Sandbox Code Playgroud)
如果你想从正常的命令使用它
gJ
Run Code Online (Sandbox Code Playgroud)
使用'gJ',您可以按原样连接行 - 无需添加或删除空格:
S<Switch_ID>_F<File type>
_ID<ID number>_T<date+time>_O<Original File name>.DAT
Run Code Online (Sandbox Code Playgroud)
结果:
S<Switch_ID>_F<File type>_ID<ID number>_T<date+time>_O<Original File name>.DAT
Run Code Online (Sandbox Code Playgroud)
使用'J'命令,您将拥有:
S<Switch_ID>_F<File type> _ID<ID number>_T<date+time>_O<Original File name>.DAT
Run Code Online (Sandbox Code Playgroud)
注意type>
和之间的空间_ID
.
sam*_*amg 22
这应该这样做:
J
Lau*_*ves 15
在vi,J
(那是shift-j)或者:join
应该做你想要的,大部分.请注意,他们调整空白.特别是,在许多情况下,您最终会在两条连接线之间留出空格,如果第二条线缩进,则在连接之前将删除缩进.
在vim中你也可以使用gJ
(g,then shift-j)或:join!
.这些将在不进行任何空白调整的情况下连接线.
在vim中,请参阅:help J
更多信息.
只需将“ \n
”替换为“”。
在 vi/Vim 中,文档中的每一行:
%s/>\n_/>_/g
Run Code Online (Sandbox Code Playgroud)
如果要确认每次更换:
%s/>\n_/>_/gc
Run Code Online (Sandbox Code Playgroud)