2013-10-14 55 views
0

1'm寻找一个命令把这个:空行段落之间用vim

Lorem存有胡萝卜,增强回扣,但他们 occaecat时间和活力,如劳动力和肥胖。正如我们来到 微量,谁将会nostrud aliquip了她锻炼的好处,因此,如果学区和长寿刺激措施的努力。 DUIS cillum一直cupidatat要在快乐足球中 疼痛逃离谴责没有 付出痛苦。
Excepteur cupidatat黑人就不是excepteur有过错 谁放弃自己的责任柔软的头脑,是疲劳。 Lorem存有悲坐阿梅德,consectetur回扣。如果消费者想在疼痛cillum足球批评乐趣
功课cupidatat避免任何 厂家。
Excepteur cupidatat黑人就不是excepteur有过错 谁放弃自己的责任柔软的头脑,是疲劳。

到这一点:

Lorem存有胡萝卜,增强回扣,但他们 occaecat时间和活力,如劳动力和肥胖。正如我们来到 微量,谁将会nostrud aliquip了她锻炼的好处,因此,如果学区和长寿刺激措施的努力。 DUIS cillum一直cupidatat要在快乐足球中 疼痛逃离谴责没有 付出痛苦。

Excepteur cupidatat黑人就不是excepteur有过错 谁放弃自己的责任柔软的头脑,是疲劳。 Lorem存有悲坐阿梅德,consectetur回扣。如果消费者想在疼痛cillum足球批评乐趣

功课cupidatat避免任何 厂家。

Excepteur cupidatat黑人就不是excepteur有过错 谁放弃自己的责任柔软的头脑,是疲劳。

有什么建议?

+0

它是包裹还是没有? – yakiang

+0

@yakiang对不起,包裹什么了? – alexchenco

+0

我不知道如何解释它..也许你可以看看[this](http://alvinalexander.com/blog/post/linux-unix/how-lines-text-display-dont- wrap-vi-vim-editor) – yakiang

回答

2

如果它包裹,这意味着一个paragraph实际上只ONE线,而你实际添加线之间一个空行。尝试:

:g/.\n\n\@!/norm o

它解释here
,如果它不包裹(意味着是在一个多段线),1've不知道如何做到这一点,无论是。但根据该网站的交代,你可以尝试通过编写自己的正则表达式规则来管理它!

+0

如果没有包装,什么分开两个段落? :) –

+0

我也不知道。其实我觉得很难从两段中看出... – yakiang

+0

Vim golf:':g /。\ n \ n \ @!/ pu_' –

1
:%s/\.\s*\n\(\S\)/\.\r\r\1 

获取与给定样品(其含有讨厌的尾随空格)所期望的结果。

我们寻找一个点后跟零个或多个空白字符(因为讨厌的尾随空间),其次是一个新行,我们捕捉非空白字符。

我们用一个点替换,后面跟着两个换行符和我们先前捕获的非空白字符。

(编辑)

下面的替代是更加通用的,适合你的非指定要求:

  • 它不关心每个“段落”是如何结束
  • 它尊重作为缩进以及

所以......

:%s/\s*\n\(\s*\S\)/\r\r\1 

如果你想你的正常化缓冲区,并删除缩进:

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

,或者用更少的反斜杠...

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

对不起,但是当段落以引号结尾时,这不起作用。 – alexchenco

+0

@alexchenco,它适用于您的示例。如果您有特殊要求,请将其置于您的问题中。 – romainl

相关问题