3

По умолчанию Vim не хочет делать отступ внутри содержимого тегов <li> , хотя он автоматически корректирует отступ для большинства других тегов HTML.

Например, если я начну с этого кода:

<ul>
<li>
foo
</li>
<li>
bar
</li>
</ul>

и у vim autoindent это я получаю:

<ul>
  <li>
  foo
  </li>
  <li>
  bar
  </li>
</ul>

Однако то, что я действительно хочу, это:

<ul>
  <li>
    foo
  </li>
  <li>
    bar
  </li>
</ul>

Это немного раздражает при написании нового кода, когда он автоматически индентируется после большинства открывающих тегов, но не этого, хотя это достаточно легко обойти. Что меня действительно привлекает, так это использование vim для автоформатирования большого сгенерированного HTML-кода, с которым я пытаюсь поиграть (пытаясь смоделировать некоторые изменения пользовательского интерфейса, используя сгенерированный источник).

Есть ли какой-нибудь простой способ изменить это поведение автоматического отступа, чтобы оно обрабатывало <li> же, как любой другой открывающий тег, и делало отступ для содержимого?

2 ответа2

6

Я не вижу простого способа сделать это, но это решение не слишком сложно.

  1. Скопируйте $ VIMRUNTIME/indent/html.vim в ~/.vim/indent/html.vim, если вы используете Unix или в ~/vimfiles/indent/html.vim, если вы в Windows.
  2. Отредактируйте свою копию indent/html.vim, добавив эту строку,

    call <SID>HtmlIndentPush('li')

    к списку похожих звонков уже в этом файле.

Это должно сделать это.

2

Если кто-то найдет этот вопрос, как я, через Google, есть другое решение, использующее расширение rag-tag Тима Попа . Это автоматически добавит правильные отступы и обновит некоторые другие теги для HTML5.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .