我在 Vim 中遇到了 CSS 的这种自定义折叠,并受到它的启发,我试图制作自己的折叠方式,但结果略有不同。我不得不放弃,因为我无法让搜索模式在折叠功能中起作用。对我来说并不奇怪,因为我是一个 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 和“列表”-- 2。也可以有第三个级别。部分的折叠文本不应包含任何
#
.在第一个选择器处开始折叠声明。
在声明的右大括号之后的最后一个空行处结束折叠
}
。在折叠文本中显示所有选择器。
如果它们不适合窗口,则显示那些适合的和未显示的计数。
我将使用上面提供的示例对其进行说明。
使用时:set foldmethod=marker
产生:set foldmarker={,}
的折叠是:
ol,
+---- 5 lines: ul -------------------------
dl,
+---- x lines: dl > some .very.long ...----
我希望它是(注意折叠之间没有空线):
+---- ol, ul -------------------------------
+---- dl ---------------------------[1]-----