2009-09-21 83 views
4

我正在使用closetag.vim插件,但它似乎不適用於所有標籤。在插件代碼中有被忽略的標籤var,其中包含一些我注意到不會關閉ex dd dl的變量,但還有許多其他列表中沒有不在列表中的內容(p,ul,li)。如何讓vim的closetag插件爲所有html標籤工作?

更新忽略標記列表後,似乎沒有發生任何事情。

要讓這個插件工作,只需輸入標籤文本並點擊標籤,對不對?即格

我錯過了什麼?

回答

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>,那麼這也應該起作用。

+0

我也把它放在插件文件夾中。如前所述,它可以在一些標籤上工作,而不是一些很常見的標籤(p,ul,li)。我會嘗試你提到的。 – chris 2009-09-22 02:55:05

+0

我得到和以前一樣的東西。我沒有正確使用插件嗎?我點擊Tab鍵完成標籤。對於我提到的標籤不起作用,光標只是超過2個字符。 – chris 2009-09-22 13:43:26

+0

您是否將tab鍵配置爲closetag觸發器?正如我之前所說的,默認值是(控件+下劃線)。如果你按下,會發生什麼? – nelstrom 2009-09-22 15:27:09

1

我也無法得到這個插件的工作,但在我的情況下,它在最後工作之前會拋出一些錯誤消息。例如,如果我嘗試關閉H1標籤,我將得到錯誤Error Detected while processing function GetCloseTag,錯誤是undefined variable b:UnaryTagsStack

似乎它會是一個有用的插件,但它不會合作。

+0

我最喜歡的是Tim Pope的allml.vim插件。它還沒有讓我失望。 – chris 2009-10-01 22:26:50

+0

allml.vim現在被稱爲[ragtag](https://github.com/tpope/vim-ragtag) – lkraav 2012-01-05 23:38:16

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=""沒有做的伎倆,但上面的組合似乎解決它在所有的文件類型我。

+0

沒關係。我的「修復」並不是一直工作,但它不是很可預測的。 closeTag似乎偶爾忘記了b:unaryTagsStack的價值。有時間嘗試allml.vim。 – JoshMock 2011-09-21 22:30:47

+1

如果有人在將來遇到這種情況,對我來說,這是因爲'b:unaryTagsStack'變量是爲每個緩衝區設置的(因此是'b'前綴),我使用多個緩衝區。解決方案是將上面的代碼分解成它自己的函數,並在GetCloseTag和GetPartialCloseTag中調用它。 – jMcK 2015-11-09 20:15:29