使用VIM在段落之间添加空行

使用VIM在段落之间添加空行,vim,Vim,我正在寻找一个命令来扭转这一局面: Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do 临时性的劳动和生产许可证。乌特埃尼姆酒店 最低成本、最低成本和最低成本 我是一个普通的消费者。两个人在一起吗 这是一个充满活力的故事 巴黎。圣奥卡塔除外,无过失,必须 这是我的错。同侧阴唇 阿梅特是一位杰出的艺术家。他是一位杰出的艺术家 这是一个充满活力的故事 帕里图尔

我正在寻找一个命令来扭转这一局面:

Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do 临时性的劳动和生产许可证。乌特埃尼姆酒店 最低成本、最低成本和最低成本 我是一个普通的消费者。两个人在一起吗 这是一个充满活力的故事 巴黎。
圣奥卡塔除外,无过失,必须 这是我的错。同侧阴唇 阿梅特是一位杰出的艺术家。
他是一位杰出的艺术家 这是一个充满活力的故事 帕里图尔<除非圣约翰无过失,否则不得进入 这是我的错

为此:

Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do 临时性的劳动和生产许可证。乌特埃尼姆酒店 最低成本、最低成本和最低成本 我是一个普通的消费者。两个人在一起吗 这是一个充满活力的故事 帕里图尔

除非圣奥卡塔特无过失,必须 这是我的错。同侧阴唇 阿梅特,我是一位杰出的献身者

两个人在一起吗 这是一个充满活力的故事 帕里图尔

除非圣奥卡塔特无过失,必须 这是我的错


有什么建议吗?

如果它被包装,那意味着一个
段落实际上只是
一行,而你实际上是在两行之间添加了一个空行。尝试:

:g/\n\n\@/标准o

已经解释过了。

如果它没有包装(意味着一段中有很多行),我也不知道该怎么做。但根据该网站的解释,您可以尝试通过编写自己的正则表达式规则来管理它

如果它被包装,这意味着一个
段落实际上只是
一行,而实际上是在两行之间添加一个空行。尝试:

:%s/\.\s*\n\(\S\)/\.\r\r\1
:g/\n\n\@/标准o

已经解释过了。
如果它没有包装(意味着一段中有很多行),我也不知道该怎么做。但根据该网站的解释,您可以尝试通过编写自己的正则表达式规则来管理它

:%s/\.\s*\n\(\S\)/\.\r\r\1
使用给定的样本(包含讨厌的尾随空格)获得所需的结果

我们搜索一个点,后跟零个或多个空格字符(因为尾随空格很讨厌),后跟一个换行符,后跟我们捕获的非空格字符

我们将替换为一个点,后跟两个换行符和前面捕获的非空白字符

(编辑)

以下替代品更通用,适合您的非指定要求:

  • 它不关心每个“段落”的结尾
  • 它也尊重缩进
所以

如果要规范化缓冲区并删除缩进,请执行以下操作:

:%s/\s*\n\(\s*\)\(\S\)/\r\r\2
或者,用更少的反斜杠

:%s/\v\s*\n(\s*)(\S)/\r\r\2
使用给定的样本(包含讨厌的尾随空格)获得所需的结果

我们搜索一个点,后跟零个或多个空格字符(因为尾随空格很讨厌),后跟一个换行符,后跟我们捕获的非空格字符

我们将替换为一个点,后跟两个换行符和前面捕获的非空白字符

(编辑)

以下替代品更通用,适合您的非指定要求:

  • 它不关心每个“段落”的结尾
  • 它也尊重缩进
所以

如果要规范化缓冲区并删除缩进,请执行以下操作:

:%s/\s*\n\(\s*\)\(\S\)/\r\r\2
或者,用更少的反斜杠

:%s/\v\s*\n(\s*)(\S)/\r\r\2


是不是包好了?@亚强对不起,什么包好了?我不知道怎么解释。。也许你可以看看“亚强”,我想它已经包好了。@alexchenco在这种情况下,你看-它可能就是你要找的东西。它包好了吗?亚强对不起,什么包好了?我不知道怎么解释。。也许你可以看看@yakiang,我想它已经包装好了。@alexchenco在这种情况下,你看-它可能就是你要找的。如果它没有包装,两段之间是什么?:)我也不知道。实际上,我认为很难从两段话中分辨出来……Vim golf:
:g/\n\n\@/pu_u
如果没有包装,两段之间的分隔是什么?:)我也不知道。实际上,我认为很难从两段话中分辨出来……Vim golf:
:g/\n\n\@/pu_
很抱歉,当段落以引号结尾时,这不起作用。@alexchenco,它适用于您的示例。如果您有特殊要求,请在您的问题中提出。对不起,当段落以引号结尾时,这不起作用。@alexchenco,它适用于您的示例。如果您有特殊要求,请将其纳入您的问题中。