Как я могу привести в порядок отступ HTML-файла в VI?
Как я могу исправить отступ его огромных html-файлов, которые были все перепутались?
я попробовал обычный команда "gg=G", который я использую, чтобы исправить отступы файлов кода. Однако, похоже, он не работал правильно на HTML-файлах. Он просто удалил все форматирование.
Я также попытался установить :filetype = xml
, чтобы увидеть, если обманом заставить его думать, что это XML-файл поможет, но он все еще не сделал этого.
10 ответов:
С
filetype indent on
внутри.vimrc
, Vim отступает HTML-файлы довольно красиво.простой пример с
shiftwidth
часть 2:<html> <body> <p> text </p> </body> </html>
есть несколько вещей, которые все должны быть на месте. Просто чтобы суммировать их все в одном месте:
установите следующий параметр:
:filetype indent on :set filetype=html # abbrev - :set ft=html :set smartindent # abbrev - :set si
затем либо переместите курсор в верхнюю часть файла и отступ до конца:
gg
=G
Или выберите нужный текст для отступа и нажмите = для отступа.
основная проблема с использованием интеллектуального отступа заключается в том, что если XML (или HTML) сидит на одной строке, поскольку он может вернуться из запроса curl, то
gg=G
не будет делать трюк. Вместо этого я только что испытал хороший отступ, используя tidy напрямую вызванный из VI::!tidy -mi -xml -wrap 0 %
это в основном говорит VI, чтобы вызвать tidy для очистки XML-файла, не обертывая строки, чтобы они вписывались в широкие строки по умолчанию 68 символов. Я обработал большой 29MB XML-файл, и это заняло 5 или 6 считанные секунды. Я предполагаю, что для HTML-файла команда должна быть:
:!tidy -mi -html -wrap 0 %
надеюсь, что это может помочь.
как tylerl объясняет выше, установите следующее:
:filetype indent on :set filetype=html :set smartindent
это мое решение, которое отлично работает для открытия "уродливого" HTML с хорошим интервалом:
vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\s*$/d"
The
sw
команда, потому что мое значение по умолчанию-4, что слишком высоко для HTML.следующая часть добавляет новую строку (Vim думает, что это возврат каретки, вздох) после каждого элемента (
>
)затем повторно отступить весь файл с
=
тогда выключи свет
>
(так как у меняset hlsearch
в моем vimrc)затем удалите все пустые / пробелы - только строки (см. здесь для большего, также это двойной экранированный, потому что он находится в оболочке)
вы даже можете добавить
| wq! fileOut.html
до конца, если вы вообще не хотите вводить Vim, но просто очистите файл.
Я использую этот скрипт: https://github.com/maksimr/vim-jsbeautify
в приведенной выше ссылке у вас есть вся информация:
- установить
- настроить (копировать из первого примера)
- выполнить
:call HtmlBeautify()
делает работу красиво!
вот тяжеловесное решение, которое заставляет вас отступать, а также всю красивую печать HTML, о которой вы не обязательно хотите заботиться во время редактирования.
скачать порядок. Убедитесь, что вы добавили двоичный файл в свой путь, чтобы вы могли вызвать его из любого места.
затем создайте файл конфигурации, описывающий ваш любимый HTML-вкус. Документация не очень подходит для аккуратного, но вот обзор и список все варианты. Вот мой конфигурационный файл:
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 файлы.
вы можете интегрировать оба порядок и html-украсить автоматически, установив плагин vim-autoformat. После этого вы можете выполнить любой форматер, установленный с помощью одного нажатия клавиши.
я попробовал обычную команду "gg=G", которую я использую для исправления отступов файлов кода. Однако, похоже, он не работал правильно на HTML-файлах. Он просто удалил все форматирование.
если автоформат/отступ vim
gg=G
Кажется, что он "сломан" (например, левый отступ каждой строки), скорее всего, плагин отступа не включен/не загружен. Он должен действительно дать сообщение об ошибке вместо того, чтобы просто делать плохие отступы, иначе пользователи просто думают, что функция автоформата / отступа ужасна, когда она на самом деле довольно хороша.чтобы проверить, включен ли плагин отступа/загружен, запустите
:scriptnames
. Смотрите, если.../indent/html.vim
в списке. Если нет, то это означает, что плагин не загружен. В этом случае, добавьте эту строку в~/.vimrc
:filetype plugin indent on
теперь, если вы откроете файл и запустите
:scriptnames
, вы должны увидеть.../indent/html.vim
. Тогда бегиgg=G
, который должен сделать правильный автоформат/отступ сейчас. (Хотя он не будет добавлять новые строки, так что если все html код находится на одной строке, он не будет отступ).Примечание: Если вы используете
:filetype plugin indent on
в командной строке vim вместо~/.vimrc
, вы должны повторно открыть файл:e
.кроме того, вам не нужно беспокоиться о
autoindent
иsmartindent
настройки, они не относятся к этому.