我正在使用closetag.vim插件,但它似乎不适用于所有标签。在插件代码中有一个忽略的标签var,其中包含一些我注意到没有关闭ex dd dl的标签,但还有许多其他不在列表中的不工作(p,ul,li)。
更新忽略标记列表后似乎没有发生任何事情。
要使此插件正常工作,您只需输入标记文本并单击选项卡,对吧?即div
我错过了什么吗?
答案 0 :(得分:3)
你是如何安装插件的?
当我在~/.vim/plugins
安装closetag.vim时,我遇到了麻烦。然后我将其移至~/.vim/scripts
,并将以下内容添加到我的.vimrc
:
:let g:closetag_html_style=1
:source ~/.vim/scripts/closetag.vim
现在它对我来说很好。我发现它会关闭所有标记(包括“忽略”列表中包含的标记),但不会关闭那些自动关闭的标记(例如<img/>
)。
在我使用的脚本版本(0.9.1)中,它将<C-_>
定义为完成标记的触发器。如果您已将命令映射到<tab>
,那么这也应该有效。
答案 1 :(得分:1)
我也无法使这个插件工作,但在我的情况下,它在最终工作之前抛出了许多错误消息。例如,如果我尝试关闭H1标记,我将收到错误Error Detected while processing function GetCloseTag
,错误为undefined variable b:UnaryTagsStack
。
似乎它会是一个有用的插件,但它不会合作。
答案 2 :(得分:1)
我遇到了同样的问题,上面的nelstrom答案并没有为我解决。对我有用的是在我的.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=""
没有做到这一点,但上面的组合似乎为我修复了所有文件类型。