Как получить vim для отступа всех тегов HTML?

Я использовал vim в Debian 7 для редактирования документа HTML. Я начал печатать: <HTML> Return

После первоначального возврата курсор был смещен на один уровень, так что, как я напечатал <head>, и остальную часть моего документа, это выглядело бы так:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Test page</title>
    </head>
    <body>
        <div>
            <p>This is a paragraph.</p>
        </div>
    </body>
</html>

За тегом в каждой строке просто следовал Return , и не было нажатий на Tab или Пробел и vim отформатировали это, как я и ожидал. Кроме того, при вводе начального </ закрывающего тега vim отменяет отступ в этой строке, чтобы соответствовать уровню соответствующего открывающего тега.

Затем, набрав тот же документ в vim на Ubuntu 13.10, так как я печатаю тот же самый документ тем же способом, я получаю следующие результаты:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<div>
    <p>This is a paragraph.</p>
</div>
</body>
</html>

Обратите внимание, что отступ не ' t начинаться до тега <p>, и я предполагаю, что любой из его последующих дочерних и дочерних элементов. Похоже, что в более поздних версиях стиля отступов HTML для удобочитаемости были выбраны теги без отступов, такие как html, head, body и т. Д. (?).

Мне не нравится тот факт, что vim не делает отступ для всех тегов. Что я могу сделать, чтобы изменить это?

Я попытался просмотреть файлы отступов для разных версий, но мне не удалось выяснить, смогу ли я там что-нибудь сделать. pastebins:

Я использую следующие версии vim:

  • Debian 7: «Vi IMproved 7.3 (2010) 15 августа, составлено 10 февраля 2013 г. 02:27:59) "
  • Ubuntu 13.10:" Vi IMproved 7.4 (2013 г., 10 августа, составлено 12 августа 2013 г. 00:28:05) "
3
задан 18 December 2013 в 18:38

1 ответ

Убедитесь, что у вас установлен полный vim:

sudo apt-get install vim

Затем создайте файл с именем ~/.vimrc со следующим содержимым:

filetype plugin indent on

Тогда он должен работать.

ОБНОВЛЕНИЕ ( источник обновления)

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

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

в vim или без : в ~/.vimrc, как всегда. (Конечно, поместите в список те теги, для которых вы хотите сделать отступ.)

Или вы можете просто заменить старую версию файла отступа на новую. В 12.04 старый файл отступа находится в /usr/share/vim/vim73/indent/html.vim, так что я думаю, что для версии 7.4 файл находится в /usr/share/vim/vim74/indent/html.vim. Или переопределить его только для вашего пользователя и защитить от обновлений, поместив его в ~/.vim/indent/html.vim

0
ответ дан 18 December 2013 в 18:38

Другие вопросы по тегам:

Похожие вопросы: