我正在使用 closetag.vim 插件,但它似乎不适用于所有标签。在插件代码中有一个被忽略的标签 var,其中包含一些我注意到没有关闭 ex dd dl 的标签,但还有许多不在列表中的其他标签不起作用(p、ul、li)。
更新忽略标签列表后似乎没有任何反应。
要让这个插件工作,你只需输入标签文本并单击选项卡,对吗?即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>
,那么这也应该有效。
我遇到了同样的问题,上面 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=""
没有起到作用,但上面的组合似乎为我修复了所有文件类型。
我也无法让这个插件工作,但在我的情况下,它在最终工作之前会抛出一些错误消息。例如,如果我尝试关闭 H1 标签,我会收到错误消息Error Detected while processing function GetCloseTag
,错误消息是undefined variable b:UnaryTagsStack
.
看起来这将是一个有用的插件,但它不会合作。