Как я могу заставить плагин closetag vim работать для всех html-тегов?

StackOverflow https://stackoverflow.com/questions/1452716

  •  12-09-2019
  •  | 
  •  

Вопрос

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

Казалось, ничего не произошло после обновления списка игнорируемых тегов.

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

Я что-то упускаю?

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

У меня была такая же проблема, и ответ нельстрома выше не решил ее для меня.Что сработало для меня, так это добавление следующих строк в мой файл .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="" трюк не сработал, но приведенная выше комбинация, кажется, исправляет это для меня во всех типах файлов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top