Answers:
:%s/\n\(\(A\.$\)\@!.*\)/\1/
替换模式匹配:
一个包含的组
A. 然后直接跟着行尾 有:
并在全球范围内这样做
:help \@! 在Vim中获取有关该部分的更多信息。否则,我的解释是直截了当的。您的方法存在问题,如果“ A. “发生在文本中,虽然不是作为一个孤立的标记线,它将被拆分,就像它最初是一个标记。在实践中它可能不是一个问题(我不知道你的”真实“文件是什么样的) ,但一般来说,如果不知道这一点,它可能会导致不必要的行为。
:%s/// 语法:它是Vim中的“搜索和替换”语法。 : 启动命令, % 将整个缓冲区指定为范围, s 开始替换。 / 是模式分隔符(可以使用任何其他字符,但是 / 是“标准”)。首先 / 开始搜索模式,第二个是替换模式,第三个结束它。尾随修饰符可用于指定不区分大小写等。 \1 表示搜索模式中的抓取组。 :%s/foo/bar/ 取代 foo 同 bar 在文件中。
:%s/^A\.//。答案中的方法没有捕捉到 ^A\. 模式本身(而不是它们的缺席),所以它不能以明显的方式修改这些字符串。
这也有效(当第一行开头时 A. )
:v/^A/-1j!