Формат и отступ HTML в Vim - PullRequest
       12

Формат и отступ HTML в Vim

19 голосов
/ 03 апреля 2012

В настоящее время у меня есть огромный HTML-файл, который не имеет разрывов строк и просто отображается в одной строке.

Я хочу отформатировать его в vim (в частности, в macvim).Я попробовал следующие варианты, но ни один из них не помог мне.

  • Выделил текст и нажал =.Это будет только автоматически назначать код.Но так как весь код присутствует в одной строке, он ничего не делает
  • Я попробовал этот плагин http://www.vim.org/scripts/script.php?script_id=3613 Этот вид работает, но вставит переносы только для текущего тега.Я хочу, чтобы весь файл был отформатирован

Есть ли способ сделать это с помощью плагина или иным способом?

Спасибо!

Ответы [ 3 ]

38 голосов
/ 03 апреля 2012

Один из способов начать это разделить все теги на их собственные строки.

:s/<[^>]*>/\r&\r/g
:g/^$/d

Если у вас есть плавающие символы < или > (например, недопустимый HTML, операторы сравнения JavaScript, CSS directпотомок селектора), это не будет работать должным образом, и вы можете переключиться на что-то вроде простого выполнения конечных тегов - <\/[^>]*>.В любом случае, он обеспечивает надежное начало.

Демонстрация:

С таким идеализированным документом, как это,

<!DOCTYPE html><html><head><title>hello</title></head><body>world</body></html>

Это дает:

<!DOCTYPE html>
<html>
<head>
<title>
hello
</title>
</head>
<body>
world
</body>
</html>

Тогда = выдаст то, что вы хотите:

<!DOCTYPE html>
<html>
    <head>
        <title>
            hello
        </title>
    </head>
    <body>
        world
    </body>
</html>
3 голосов
/ 13 июня 2015

Для лучшего результата вам следует использовать специализированные программы внешнего формата.

Вы можете автоматически интегрировать tidy и html-beautify , установив плагин VIM-автоформат .После этого вы можете выполнить любое установленное средство форматирования одним нажатием клавиши.

0 голосов
/ 10 февраля 2014

Было бы лучше использовать утилиту tidy, , как описано в этом ответе .

Хорошие инструменты уже написаны для этой работы

...