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!