【发布时间】:2011-09-22 02:02:46
【问题描述】:
我正在使用 closetag.vim 插件,但它似乎不适用于所有标签。在插件代码中有一个被忽略的标签 var,其中包含一些我注意到没有关闭 ex dd dl 的标签,但还有许多不在列表中的其他标签不起作用(p、ul、li)。
更新忽略标签列表后似乎没有发生任何事情。
要让这个插件工作,你只需输入标签文本并单击选项卡,对吗?即 div
我错过了什么吗?
【问题讨论】:
我正在使用 closetag.vim 插件,但它似乎不适用于所有标签。在插件代码中有一个被忽略的标签 var,其中包含一些我注意到没有关闭 ex dd dl 的标签,但还有许多不在列表中的其他标签不起作用(p、ul、li)。
更新忽略标签列表后似乎没有发生任何事情。
要让这个插件工作,你只需输入标签文本并单击选项卡,对吗?即 div
我错过了什么吗?
【问题讨论】:
你是如何安装插件的?
当我在~/.vim/plugins 中安装 closetag.vim 时遇到了问题。然后我将其移至~/.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。
看起来这将是一个有用的插件,但它不会合作。
【讨论】:
我遇到了同样的问题,上面 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="" 没有解决问题,但上面的组合似乎可以解决我在所有文件类型中的问题。
【讨论】: