在Vim中自定义折叠CSS

时间:2010-07-09 11:38:32

标签: css vim folding

我遇到了这个custom folding for CSS in Vim并且受到我的启发 我试着用自己略有不同的结果来创造自己的想法。我不得不放弃 因为我无法使搜索模式在折叠功能中起作用。我并不感到惊讶 因为我是Vim的初学者:)

非常感谢任何帮助以实现以下目标。

  • 为了便于阅读,我使用空行进行分隔。加上它使 导航与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. 根据级别折叠部分。

    部分级别由#的数字表示,因此在上面 示例“Globals”应该具有折叠级别1和“列表” - 2.可以有一个 第三级也是。

    部分的折叠文字不应包含任何#

  2. 在第一个选择器处开始声明折叠。

  3. 在声明的右括号后面的最后一个空行结束一个折叠 }

  4. 在折叠文字中显示所有选择器。

    如果它们不适合窗口,则显示那些做的和计数 没有显示。

  5. 我将使用上面提供的示例来说明它。

    使用:set foldmethod=marker:set foldmarker={,}时,生成的折叠为:

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

    我希望它(注意折叠之间没有空行):

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

1 个答案:

答案 0 :(得分:0)

检查我为SO写的folding plugin for CSS。应该很容易根据您的需求进行改进。您将不得不测试当前行周围的行 - 检测所有花括号并缓存它们可能更有效,以便知道何时查找连续行。