Как я могу убрать отступ HTML файла в VI?

Как исправить отступы его огромных html файлов, которые были испорчены?

Я попробовал обычную команду "gg = G" , которую я использую для исправления отступов файлов кода. Тем не менее, похоже, что это не работает на HTML файлах. Он просто удалил все форматирование.

Я также попытался установить :filetype = xml, чтобы понять, поможет ли это обмануть его в том, что это был файл XML, но он все равно этого не делал.

Ответ 1

С filetype indent on внутри моего .vimrc, Vim отлично отлаживает HTML файлы.

Простой пример с shiftwidth из 2:

<html>
  <body>
    <p>
    text
    </p>
  </body>
</html>

Ответ 2

Есть несколько вещей, которые все должны быть на месте. Просто, чтобы суммировать их все в одном месте:

Задайте следующую опцию:

:filetype indent on
:set filetype=html           # abbrev -  :set ft=html
:set smartindent             # abbrev -  :set si

Затем либо переместите курсор в верхнюю часть файла, и отступ до конца: gg =G
Или выберите нужный текст в отступ и нажмите =, чтобы отстутнуть его.

Ответ 3

Обратите внимание, что в vim 7.4 по умолчанию теги html html, head, body и некоторые другие не. Это имеет смысл, так как почти все содержимое в html файле попадает под эти теги. Если вы действительно этого захотите, вы можете получить эти теги так:

:let g:html_indent_inctags = "html,body,head,tbody" 

Подробнее см. здесь и здесь.

Ответ 4

Основная проблема с использованием интеллектуального отступа состоит в том, что если XML (или HTML) сидит на одной строке, так как он может вернуться из запроса на завивание, то gg=G не будет делать трюк. Вместо этого я только что испытал хороший отступ, используя аккуратный, вызываемый непосредственно из VI:

:!tidy -mi -xml -wrap 0 %

Это в основном говорит VI, чтобы вызвать порядок очистки файла XML, не обертывая строки, чтобы они соответствовали строкам по умолчанию 68 символов. Я обработал большой XML файл размером 29 МБ, и потребовалось 5 или 6 секунд. Я думаю, для HTML файла команда должна быть:

:!tidy -mi -html -wrap 0 %

Надеюсь, это поможет.

Ответ 5

Это мое решение, которое прекрасно работает для открытия "уродливого" HTML в удобном расстоянии:

vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d"

Команда sw заключается в том, что мой по умолчанию 4, что слишком велико для HTML.

Следующая часть добавляет новую строку (Vim считает, что каретка возвращается, вздыхает) после каждого элемента (>)

Затем перетащите весь файл с помощью =

Тогда unhighlight > (так как у меня есть set hlsearch в моем vimrc)

Затем удалите все пустые/пробельные строки (см. здесь для большего, также это двойное экранирование, потому что оно находится в оболочке)

Вы даже можете добавить | wq! fileOut.html в конец, если вы вообще не хотите вводить Vim, но просто очищайте файл.

Ответ 6

Я использую этот script: https://github.com/maksimr/vim-jsbeautify

В приведенной выше ссылке у вас есть вся информация:

  • Установить
  • Настроить (копировать из первого примера)
  • Выполнить :call HtmlBeautify()

Прекрасно ли работает!

Ответ 8

Здесь тяжелое решение, которое дает вам отступы, а также всю красивую HTML-печать, которую вы не обязательно хотите заботиться во время редактирования.

Сначала загрузите Tidy. Убедитесь, что вы добавили двоичный файл к своему пути, поэтому вы можете вызывать его из любого места.

Затем создайте файл конфигурации, описывающий ваш любимый HTML-вкус. Документация не очень подходит для Tidy, но здесь обзор и список все варианты. Вот мой конфигурационный файл:

bare: yes
break-before-br: no
clean: yes
drop-proprietary-attributes: yes
fix-uri: yes
indent-spaces: 4
indent: yes
logical-emphasis: yes
markup: yes
output-xhtml: yes
quiet: yes
quote-marks: yes
replace-color: yes
tab-size: 4
uppercase-tags: no
vertical-space: yes
word-2000: yes
wrap: 0

Сохраните это как tidyrc_html.txt в папке ftplugin (под vimfiles).

Еще один файл: добавьте следующую строку в (или создайте) html.vim, также в ftplugin:

map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR>

Чтобы использовать его, просто откройте файл HTML и введите /tidy. (Это / - это клавиша <leader>.)

Иди сюда! Не быстрое решение, каким-либо образом, но теперь вы немного лучше приспособлены для редактирования этих огромных, перепутанных HTML файлов.

Ответ 9

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