![在 Vim 中将文本模式后的行合并](https://linux22.com/image/1528096/%E5%9C%A8%20Vim%20%E4%B8%AD%E5%B0%86%E6%96%87%E6%9C%AC%E6%A8%A1%E5%BC%8F%E5%90%8E%E7%9A%84%E8%A1%8C%E5%90%88%E5%B9%B6.png)
我尝试使用 vim 连接线路,但没有成功
假设我有一个如下所示的文本文件:
HI
Hello
A, b, c, d,
HI
Hello
A, b, c, d,
HI
Hello
A, b, c, d,
HI
Hello
A, b, c, d,
我想将所有以 HI. 开头的行连接到 Hello. 之后,使其看起来像这样:
Hello HI
A, b, c, d,
Hello HI
A, b, c, d,
Hello HI
A, b, c,
Hello HI
A, b, c, d,
答案1
:g/^Hello/m-2|j
这就是您想要的命令。
G用于全局命令
^你好是正则表达式
米-2将当前行移至当前位置上方 2 行;意味着将当前行与上方行交换
杰连接当前行和上一行,并在两者之间插入一个空格。使用 j! 表示不插入空格。
|分隔两个 ex 命令