Vim переменной длины поиска и замены подстановочных знаков? - PullRequest
5 голосов
/ 18 января 2012

Я пытаюсь очистить сгенерированный Frontpage html-файл, и мне нужно удалить массу атрибутов тегов, например:

style="font-size: 10.0pt; font-family: Trebuchet MS; color: blue"
style="color: blue; text-decoration: underline; text-underline: single"
style="color: blue; text-decoration: underline; text-underline: single"
style="font-family: Trebuchet MS"
style="font-size:10.0pt;"
style="color: navy"

Я могу удалить набор подстановочных знаков с помощью простого. Команда:

:%s/ style="........"//g

Но есть ли способ сделать. переменной длины в этой команде замещения, чтобы одна команда удаляла каждый атрибут стиля во всем документе?

PS - Я искал очистители главной страницы и нашел несколько, но не ясно, насколько они надежны, поэтому вместо этого сам написал сценарий. Здесь открыты для предложений.

1 Ответ

12 голосов
/ 18 января 2012

Это должно устранить все атрибуты стиля в вашем HTML:

:%s/ style=".*"//g

Редактировать : Сэм Бринк поднимает хороший вопрос.Мой код был основан только на вашем примере.Этот код слишком сильно сожрал бы, скажем, если бы другие атрибуты следовали за атрибутом style="...".Более безопасной альтернативой может быть:

:%s/ style="[^"]*"//g

, что означает - удалить все символы после style=", то есть НЕ двойную кавычку [^"] до следующей двойной кавычки.Спасибо Сэм!

...