2

HTML5 Boilerplate CSS(至少通过 initializr)具有标记部分的注释,如下所示:

/* ==========================================================================
   HTML5 Boilerplate styles - h5bp.com (generated via initializr.com) 
   ========================================================================== */

有没有办法让 vim 将这些识别为折叠部分,以便:

  • 的第一行/* ===被识别为折叠的开始
  • 第二行,即HTML5 Boilerplate styles - h5bp...折叠的名称
  • 它折叠所有 CSS 直到这些标题中的下一个

我知道我可以放在{{{1这些评论的第二行,但它看起来还是有点乱。

4

2 回答 2

3

您想要的完全有可能,但很特殊,因此我只给您一般提示,而不是完整的解决方案。

对于折叠,这取决于您还有哪些其他折叠要求。您还想折叠单个 CSS 定义(即{ ... }块)吗?通常(除非您使用显式折叠标记),您可以使用其中一个syntaxexprfor 'foldmethod'

例如,JulesWang 的 CSS 语法已经支持一些折叠;你必须:syntax region ... fold为你的样板部分扩展这个(通过)(并将它放入~/.vim/after/syntax/css.vim)。

或者,您可以编写自定义'foldexpr':help fold-expr告诉你怎么做。

对于折叠的名称,它由'foldtext'设置决定,就像 一样'foldexpr',它会不断地计算 Vimscript 表达式。它是这样的,它检查样板块的开始,然后返回下一行,或者回退到默认值:

getline(v:foldstart) =~# '^\s*/\* =\+' ? getline(v:foldstart + 1) : foldtext()
于 2013-09-19T11:22:54.183 回答
0
setlocal foldmethod=marker
setlocal foldmarker=/*,*/

应该可以,但它会限制您对评论的折叠能力。

如果您对此感到满意,则可以将这些行添加到:

~/.vim/after/ftplugin/css.vim

对于更智能的折叠,我建议观看Drew Neil 的截屏视频

于 2013-09-19T08:30:31.920 回答