用于识别 vim 中恰好包含 1 行的段落的正则表达式

Regex to identify paragraph in vim consisting of exactly 1 row

输入

row 1
row 2

row 1

row 1
row 2
row 3
row 4
row 5
row 6

row 1
row 2
row 3
row 4
row 5

正则表达式应该 return 仅包含第 1 行的段落

row 1

我第一次尝试了类似 v/(\n\n)+/d 的方法,但没有成功。

你可以使用

:%s/\v\n*.+(\n.+)+\n*/\r/g

此命令将替换以下文件中出现的所有内容

  • \v - 启用魔法模式以避免逃脱地狱
  • \n* - 匹配零个或多个换行符
  • .+ - 除换行符以外的一个或多个字符(非空行)
  • (\n.+)+ - 匹配一个或多个非空行
  • \n* - 零个或多个换行符。

替换为换行符,\r,以避免在有多个匹配项时出现换行。