我最喜欢的两个 Vim 特性是能够将标准运算符应用于匹配正则表达式的行,以及通过外部命令过滤选择或范围的行的能力。但是这两个想法可以结合起来吗?
例如,我有一个用作实验室笔记本的文本文件,其中不同日期的笔记由一行破折号分隔。我可以使用类似的东西来删除所有虚线:% g/^-/d
。但是假设我想调整所有实际文本行的大小,而不触及那些虚线。
对于单个段落,这将类似于{!}fmt
. 但这如何应用于所有非破折号段落?当我尝试看似合乎逻辑的事情,并将这两者与 链接在一起时:% v/^-/!fmt
,这是行不通的。(事实上,它似乎让 Vim 崩溃了……)
有没有办法将这两个想法联系起来,并且只将匹配模式的行(不)传递到外部命令中,比如fmt
?