Как я могу заставить плагин Vim closetag работать для всех HTML-тегов? - PullRequest
4 голосов
/ 21 сентября 2009

Я использую плагин closetag.vim, но он не работает для всех тегов. В коде плагина есть игнорируемые теги var, которые содержат некоторые, которые, как я заметил, не закрывали ex dd dl, но есть много других, которых нет в списке и которые не работают (p, ul, li).

После обновления списка игнорируемых тегов ничего не происходило.

Чтобы этот плагин заработал, просто введите текст тега и нажмите вкладку, верно? то есть div

Я что-то упустил?

Ответы [ 3 ]

3 голосов
/ 21 сентября 2009

Как вы установили плагин?

У меня были проблемы с closetag.vim, когда я установил его в ~/.vim/plugins. Затем я переместил его в ~/.vim/scripts и добавил к своему .vimrc следующее:

:let g:closetag_html_style=1
:source ~/.vim/scripts/closetag.vim

и теперь у меня все работает нормально. Я считаю, что он закрывает все теги (включая те, которые включены в список «игнорировать»), но не те, которые являются самозакрывающимися (например, <img/>).

В используемой мной версии скрипта (0.9.1) он определяет <C-_> как триггер для завершения тегов. Если вы сопоставили команду с <tab>, то это тоже должно сработать.

1 голос
/ 21 сентября 2011

У меня была та же проблема, и ответ Нельстрема выше не решил ее для меня. Для меня работало добавление следующих строк в мой .vimrc:

if !exists("b:unaryTagsStack") || exists("b:closetag_html_style")
    if &filetype == "html" || exists("b:closetag_html_style")
        let b:unaryTagsStacktack="area base br dd dt hr img input link meta param"
    else " for xml and xsl
        let b:unaryTagsStack=""
    endif
endif

if !exists("b:unaryTagsStack")
    let b:unaryTagsStack=""
endif

Я не знаю, почему просто добавление let b:unaryTagsStack="" не сработало, но приведенная выше комбинация, кажется, исправила это для всех типов файлов.

1 голос
/ 01 октября 2009

Я также не могу заставить этот плагин работать, однако в моем случае то, что он делает, выдает ряд сообщений об ошибках, прежде чем наконец-то заработает. Например, если я попытаюсь закрыть тег H1, я получу ошибку Error Detected while processing function GetCloseTag, и ошибка будет undefined variable b:UnaryTagsStack.

Похоже, это был бы полезный плагин, но он не будет сотрудничать.

...