Отступ HTML по умолчанию для Vim не делает отступ для тегов <p>
. Это означает, что он не только не удалит уровень отступа после </p>
, но также, вероятно, не добавит уровень отступа автоматически после открытия <p>
. Если это так, вы можете изменить это поведение, установив переменную g:html_indent_tags
. Он должен содержать регулярное выражение, соответствующее имени тега. Например:
let g:html_indent_tags = 'p\|li\|nav'
Это добавит уровень отступа для тегов p
, li
и nav
. Если вы хотите использовать только теги <p>
, просто установите для него значение «p»:
let g:html_indent_tags = 'p'
Если vim действительно равен с отступом начального <p>
, то возможно, что ваш параметр indentkeys
не содержит символа ">". Вы можете проверить его содержимое, выполнив set indentkeys
. Если он не содержит <>>
, вы можете добавить его в .vim/ftplugin/html.vim
:
setlocal indentkeys+=<<>
EDIT
К сожалению, vim, кажется, удаляет эту переменную ... Это вообще не имеет смысла для меня, но вы могли бы добавить одну переменную в .vim/after/ftplugin/html.vim
. Это должно сделать свое дело. Лично я сделал что-то другое - я скопировал файл по умолчанию в .vim/indent/html.vim
и закомментировал строки, которые удаляют переменную. Тем не менее, использование каталога after
, вероятно, является лучшей идеей.
EDIT
Плагин html5 , похоже, не страдает от этой проблемы. Это может быть хорошей идеей, чтобы просто установить это вместо этого. В противном случае, переменная g:html_indent_tags
по-прежнему будет подходящим местом, но лучшее место для нее, вероятно, ~/.vim/after/indent/html.vim
:
let g:html_indent_tags .= '\|p\|nav\|othertags'
Обратите внимание на использование .=
вместо =
. Это конкатенация на месте. Вам это нужно, поскольку переменная уже существует, и вы не хотите ее удалять.