【问题标题】:vim folding with laravel blade templating enginevim 折叠与 laravel 刀片模板引擎
【发布时间】:2014-02-07 19:30:42
【问题描述】:

我在使用 laravel 刀片模板引擎时遇到了 Vim 折叠问题。它在页面上显示折叠标记。所以刷新浏览器窗口后我看到 /{{{/

我的折叠设置为标记 - 这是我的 .vimrc 中唯一的折叠设置。

有人知道怎么解决吗? 谢谢。

好的,这里是更新:

在 vim 中输入详细命令后,我得到了:

:verbose set fdm → foldmethod=marker
:verbose set frm? → foldmarker = {{{,}}}
:verbose set fdt? → foldtext=foldtext()

我在想,既然刀片基于正则表达式,它不能正确过滤折叠标记?

【问题讨论】:

  • 您的框架可能会卡在折叠标记上。可以举个例子吗?
  • 请发布一些示例代码和:verbose set fdm? fdt? fmr?的输出。

标签: vim laravel folding blade


【解决方案1】:

foldmarkers 背后的想法是它们包含在源代码文件中,但与编程语言无关。这通常意味着它们必须包含在 cmets 中。如果您仍然在浏览器中看到它们,则意味着您未能从模板引擎中隐藏它们。

您需要将它们嵌入到 cmets 中,例如HTML 的:<!-- {{{1 -->。 Vim 可以通过'commentstring' 选项帮助你解决这个问题(在zf - 创建折叠)。

请注意,foldmarkers 大多仅用于个人的自定义文本文件(您希望在其中创建折叠结构而没有正确的语法或其他正式结构)。对于编程语言,您宁愿使用syntaxexprindent foldmethods。这比自己管理折叠更容易,而且不会在代码中乱扔不属于那里的特定于编辑器的垃圾(或者你的不使用 Vim 的同事会这样吗?!)

如果你的模板引擎是基于 HTML 的,这个(当放入 ~/.vim/after/syntax/html.vim,连同 :setlocal foldmethod=syntax 应该给你一些折叠:

:syntax region htmlFold start="<\z(p\|h\d\|table\|colgroup\|thead\|tfoot\|tbody\|t[dhr]\|pre\|[diou]l\|li\|span\|div\|head\|script\|style\|blockquote\|form\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-15
    • 2015-01-21
    • 2013-04-29
    • 1970-01-01
    • 2019-05-27
    • 2018-07-07
    • 2016-10-02
    相关资源
    最近更新 更多