2015-10-05 4 views
-1

У меня есть файл, который выглядит SGML имеет много <p> пунктов, которые подразумеваемые закрывающие теги, как это:Как добавить теги конца SGML?

<p>Here is one paragraph. 
<p>And here is another. This one contains <i>italics</i>. 
<p>Finally, here is another paragraph. 

Там нет ни одного конца метки на этих пунктах. Я хочу, чтобы это выглядело так:

<p>Here is one paragraph.</p> 
<p>And here is another. This one contains <i>italics</i>.</p> 
<p>Finally, here is another paragraph.</p> 

Есть ли простой способ сделать это с помощью инструментов OSS? (Как Vim, СЭД и т.д.?)

+0

ничего не делать, он будет выглядеть одинаково – tinySandy

+0

Хороший улов. Ошибка копирования-вставки. Исправлена. – Jono

ответ

1

В vim, с учетом указанного вами вменения, вы можете использовать :%s/$/<\/p>/. Обратите внимание, что это работает только для вашего примера, где каждый абзац - одна строка.

В случае многострочных абзацев сначала соедините все строки :%j, затем добавьте конечный тег в начало тега :%s/ \+<p>/<\/p><p>/, затем добавьте конечный тег конца :%s/$/<\/p>/. Наконец, оплатите текст с помощью gqap.

0

%s/<p>\zs\(.*\)/\1<\/p>/ должны работать в Vim, но «классический» решением является %s/<p>/<\/p><p>/, а затем переместить первый </p> в конце текста.