我正在使用closetag.vim插件,但它似乎不适用于所有标签。在插件代码中有被忽略的标签var,其中包含一些我注意到不会关闭ex dd dl的变量,但还有许多其他列表中没有不在列表中的内容(p,ul,li)。如何让vim的closetag插件为所有html标签工作?
更新忽略标记列表后,似乎没有发生任何事情。
要让这个插件工作,只需输入标签文本并点击标签,对不对?即格
我错过了什么?
我正在使用closetag.vim插件,但它似乎不适用于所有标签。在插件代码中有被忽略的标签var,其中包含一些我注意到不会关闭ex dd dl的变量,但还有许多其他列表中没有不在列表中的内容(p,ul,li)。如何让vim的closetag插件为所有html标签工作?
更新忽略标记列表后,似乎没有发生任何事情。
要让这个插件工作,只需输入标签文本并点击标签,对不对?即格
我错过了什么?
你是如何安装插件的?
当我安装在~/.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=""
没有做的伎俩,但上面的组合似乎解决它在所有的文件类型我。
我也把它放在插件文件夹中。如前所述,它可以在一些标签上工作,而不是一些很常见的标签(p,ul,li)。我会尝试你提到的。 – chris 2009-09-22 02:55:05
我得到和以前一样的东西。我没有正确使用插件吗?我点击Tab键完成标签。对于我提到的标签不起作用,光标只是超过2个字符。 – chris 2009-09-22 13:43:26
您是否将tab键配置为closetag触发器?正如我之前所说的,默认值是(控件+下划线)。如果你按下,会发生什么? –
nelstrom
2009-09-22 15:27:09