Изменить параметры <li> автоматического отступа в VIM

По умолчанию 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 ответа

Решение

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

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

    call <SID>HtmlIndentPush('li')

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

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

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

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