2013-10-14 2 views
0

1'm ищет одну команду, чтобы превратить это:пустой строки между абзацами с Vim

Lorem Ipsum морковь, увеличенные скидки, но они делают время occaecat и жизнеспособность, такие как труд и ожирение , Ибо, как мы пришли к минит, который nostrud aliquip из нее преимущества упражнений, так что стимулирование усилия, если школьный округ и долговечность. DUIs cillum был cupidatat хочет быть боль в удовольствие от боли футбола в Бегите осуждаем не не платить.
Excepteur cupidatat чернокожие не excepteur виноваты , которые отказываются от своих обязанностей мягких умов, что усталость. Lorem Ipsum боль сидеть Амет, consectetur скидки.
домашнее задание cupidatat если потребитель хочет быть приятно критике боль cillum футбола избегает любых производителей.
Excepteur cupidatat чернокожие не excepteur виноваты , которые отказываются от своих обязанностей мягких умов, что усталость.

в этом:

Lorem Ipsum морковь, увеличенные скидки, но они делают время occaecat и жизнеспособность, такие как труд и ожирение. Ибо, как мы пришли к минит, который nostrud aliquip из нее преимущества упражнений, так что стимулирование усилия, если школьный округ и долговечность. DUIs cillum был cupidatat хочет быть боль в удовольствие от боли футбола в Бегите осуждаем не не платить.

Excepteur cupidatat чернокожие не excepteur виноваты , которые отказываются от своих обязанностей мягких умов, что усталость. Lorem Ipsum боль сидеть Амет, consectetur скидки.

домашнее задание cupidatat если потребитель хочет быть приятно критике боль cillum футбола избегает любых производителей.

Excepteur cupidatat чернокожие не excepteur виноваты , которые отказываются от своих обязанностей мягких умов, что усталость.

Любые предложения?

+0

Является ли это завернутые или нет? – yakiang

+0

@yakiang Извините, что обернуто? – alexchenco

+0

Я не знаю, как это объяснить. Возможно, вы могли бы взглянуть на [это] (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

Смежные вопросы