Лого на страниците (малко).

Заглавна страница > Четива > Четива за глотометрията > cream в режим „expert“ > Превръщане на форматиран (многоредов) абзац в неформатиран (едноредов) абзац

 

Александър Иванов

cream в режим „expert“

Превръщане на форматиран (многоредов) абзац в неформатиран (едноредов) абзац

Когато вземате текстове от интернет, често пъти те са форматирани, за да могат да се печатат. Такива са, например текстовете в lib.ru (на руски) или текстовете от инициативата Gutenberg. В тях абзацът е съставен от „къси“ редове (например, не по-дълги от 80 символа). Ако абзаците са разделени с празен ред — добре; ако не са, първият ред от абзаца започва с врезка, отстъп, направен с шпации или с табулатор. В такъв случай може да вмъкнете празен ред пред абзаца с подобна команда:

:%s:^\(\s\):\r\1:

След което можете вече да махнете шпациите и табулаторите пред и след текстовия ред.

При форматираните текстове, ако са подравнени вдясно, това е постигнато чрез вмъкване на повече шпации между думите. Сега трябва да премахнем тези излишни шпации:

:%s:\s\+: :g

Но остава следният проблем — как да „навържете“ кратките редове в един „дълъг“ ред, в един абзац, като се вземе предвид, че абзаците са с различен брой „къси“ редове. Ето най-простото решение, което съм срещал:

1) Поставете в края на текста един празен ред (за да се обработи и последният абзац).

2) Изпълнете

:g/^./ .,/^$/-1 join

Коментар: командата global се прилага към целия текст и търси непразен ред — /^./. Тя прилага командата join към редове, започващи от реда, където е курсорът (.) до реда преди следващия празен ред — /^$/-1. Новото тук е, че диапазонът (range) се определя динамично чрез шаблон за търсене, а -1 е суфикс за „относително“ (спрямо намерения ред) отместване в редове, за да се запази празният ред между абзаците.

3) Не забравяйте да махнете празния ред на края на текста.

Страница: А. И.
Електронна поща
Дата на публикуване: 15.V.2014
Последна редакция: 27.IV.2023
Съобразено с
html5/css3