我遇到了这个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] {
...
我想:
根据级别折叠部分。
部分级别由#
的数字表示,因此在上面
示例“Globals”应该具有折叠级别1和“列表” - 2.可以有一个
第三级也是。
部分的折叠文字不应包含任何#
。
在第一个选择器处开始声明折叠。
在声明的右括号后面的最后一个空行结束一个折叠
}
。
在折叠文字中显示所有选择器。
如果它们不适合窗口,则显示那些做的和计数 没有显示。
我将使用上面提供的示例来说明它。
使用:set foldmethod=marker
和:set foldmarker={,}
时,生成的折叠为:
ol,
+---- 5 lines: ul -------------------------
dl,
+---- x lines: dl > some .very.long ...----
我希望它(注意折叠之间没有空行):
+---- ol, ul -------------------------------
+---- dl ---------------------------[1]-----
答案 0 :(得分:0)
检查我为SO写的folding plugin for CSS。应该很容易根据您的需求进行改进。您将不得不测试当前行周围的行 - 检测所有花括号并缓存它们可能更有效,以便知道何时查找连续行。