2010-07-09 64 views
2

我遇到了這個custom folding for CSS in Vim,受到它的啓發我是 試圖讓我自己的想法略有不同。我不得不放棄 ,因爲我無法使搜索模式在摺疊功能中工作。對我來說並不奇怪 因爲我更喜歡Vim的初學者:)在Vim中爲CSS定製摺疊

任何幫助實現以下內容將不勝感激。

  • 爲了便於閱讀,我使用空行作爲分隔符。此外,它還支持 與Vim的導航}{

  • 我把每個選擇器放在自己的路線上。

  • 我將聲明分組爲段,這些段通常是嵌套的。

樣品輸入:

/* # Globals 
===================================== */ 

... 

/* ## Lists 
------------------------------------- */ 

ol, 
ul { 
    margin-top: 1.6154em; /*21px*/ 
    /* Some other comment */ 
    list-style-position: outside; 
} 

dl, 
dl > some .very.long + selector:not-fitting[on=screen] { 
    ... 

我想:基於

  1. 折節上他們的水平。

    的部分電平是由許多的#所示,從而在上述 例如「全局」應具有摺疊級別1和「解釋」 - 2可以有 第三電平太。

    部分的摺疊文本不應包含任何#

  2. 在第一個選擇器處開始聲明摺疊。

  3. 在聲明的大括號後的最後一個空行結束摺疊 }

  4. 顯示全部摺疊文本中的選擇器。

    如果他們不適合在窗口,顯示那些做的和計數 不顯示的。

我會使用上面提供的示例來說明它。

當使用:set foldmethod=marker:set foldmarker={,}產生的褶皺是:

ol, 
+---- 5 lines: ul ------------------------- 

dl, 
+---- x lines: dl > some .very.long ...---- 

而且我想它是(注意有褶皺之間沒有空行):

+---- ol, ul ------------------------------- 
+---- dl ---------------------------[1]----- 

回答

0

入住這folding plugin for CSS我爲SO寫信。根據您的需求改進它應該很容易。您將不得不測試當前行周圍的行 - 檢測所有大括號並緩存它們可能更有效,以便知道何時查找連續行。