在 Vim 中连接特定文本模式之间的行

vim*_*oob 8 vim

我有一个看起来像这样的文本文件:

A.
text
text
text


A.
more text

more text

A.
more text
Run Code Online (Sandbox Code Playgroud)

我想加入“标记”之间的所有行A.,使其看起来像:

A.texttexttext
A.more textmore text
A.more text
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Vim 中做到这一点?

小智 7

这也有效(当第一行以 开头时A.

:v/^A/-1j!
Run Code Online (Sandbox Code Playgroud)


Dan*_*son 5

:%s/\n\(\(A\.$\)\@!.*\)/\1/
Run Code Online (Sandbox Code Playgroud)

替换模式匹配:

  1. 新队,
  2. 一组包含

    1. 不是A.直接跟行尾的字符串,那么
    2. 任何字符直到行尾

和:

  • 除了起始换行符(即上面的组)之外的所有内容都匹配,

并在全球范围内这样做。