HTML отступы, не работающие в скомпилированном Vim 7.4, любые идеи?
При попытке получить файлы vim
в indent .html
правильно, я следил за примерами здесь.
Учитывая следующий файл index.html
:
<html>
<body>
<p>
text
</p>
</body>
</html>
Я попытался открыть его как это (игнорируя мой .vimrc
, чтобы убедиться, что он не мешает отрицательно)
vim -u NONE index.html
Затем я установил параметры, чтобы включить автоматический отступ:
:filetype plugin indent on
:set filetype=html # abbrev - :set ft=html
:set smartindent # abbrev - :set si
И затем я отложил весь файл с помощью gg=G
, и это результат:
<html>
<body>
<p>
text
</p>
</body>
</html>
Я проверил, чтобы файл html.vim
существовал, и он определенно там
$ head -2 ~/.vim/after/ftplugin/html.vim
" Vim syntax file
" Language: HTML
$ head -2 ~/.vim/ftplugin/html.vim
" Vim syntax file
" Language: HTML
Моя версия vim равна 7.4:
$ vim --version | head -1
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 23 2013 16:12:20)
И он включает интеллектуальный отступ:
$ vim --version | grep smartindent
-ebcdic +mouse +smartindent +xim
Я не понимаю, почему отступы не работают! Любые подсказки или идеи для дальнейшего изучения этой проблемы?
FWIW, я запускаю Ubuntu 13.04.
Ответы
Ответ 1
Как упоминалось в ответе Кори, в настоящее время распространенная версия Vimscript 2075. Если вы перейдете на эту страницу плагина, вы можете просмотреть все теги, которые по умолчанию увеличивают отступ.
Ни один из тегов, которые вы указали в вашем примере, не указан в этом списке по умолчанию, но их много.
Так как отступ HTML очень открыт для пользовательских предпочтений, поддерживающий плагин включил опцию добавления или удаления тегов в или из списка тегов, который увеличивает отступ. Смотрите: help html-indent, где он предлагает:
You can add further tags with:
:let g:html_indent_inctags = "html,body,head,tbody"
Ответ 2
Между версиями 7.3 и 7.4 изменился связанный файл html.vim
, расположенный в $VIMRUNTIME/indent
. В настоящее время распределенная версия на самом деле Vimscript # 2075, и по умолчанию она не содержит тегов html
.
Я рекомендую решение Ben выше, но в качестве альтернативы вы можете вернуться к предыдущей версии распределенного файла html.vim
.
Чтобы сделать это, просто замените существующий файл 7.4 html.vim
на тот, который из 7.3.
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
tar jxf vim-7.3.tar.bz2
cp vim73/runtime/indent/html.vim ~/.vim/indent/
Ответ 3
По состоянию на 7.4.52
внутри vim:
:let g:html_indent_inctags = "html,body,head,tbody"
:call HtmlIndent_CheckUserSettings()
else в .vimrc:
let g:html_indent_inctags = "html,body,head,tbody"
Я хотел просто добавить это в комментарий к верхнему ответу, чтобы отдать назад, потратив слишком много времени, не получив ответа на работу, но, по-видимому, не имеет достаточной репутации: (