【发布时间】:2015-09-15 01:27:15
【问题描述】:
所以这个问题可能已经问过几次了,但还没有一个明确的答案。在 vim 中折叠 html 块。
采取以下标记
<html>
<body>
<section>
<ul>
<li></li>
<li></li>
</ul>
</section>
<section>
<ul>
<li></li>
<li></li>
</ul>
</section>
</body>
</html>
如果您将 vim 的折叠设置为缩进并尝试折叠任一节元素,则两者都将折叠到折叠中。不理想。相反,我一直在做的是折叠每个部分的内容。
我想要的是将各个部分元素折叠到它们自己的块中。
现在将 foldmenthod 设置为语法,然后使用 zfat 可以工作,但是击键次数很多。
相反,是否可以根据打开/关闭块折叠? 到目前为止,我已经找到了这个基于 XML 的区域,它也适用于 html,但我不知道如何使用它。
syn region XMLFold start=+^<\([^/?!><]*[^/]>\)\&.*\(<\1\|[[:alnum:]]\)$+ end=+^</.*[^-?]>$+ fold transparent keepend extend
如果这可行或有更好的选择,有什么想法吗?
编辑
我目前拥有的。
autocmd FileType html setlocal foldmethod=indent
autocmd FileType html setlocal fdl=3
如果我在任一部分元素上切换折叠,它会将所有元素折叠成一个折叠
<html>
<body>
<section>…
</body>
</html>
相反,它应该只为每个单独的部分或 div 元素切换折叠。
<html>
<body>
<section>…
<section>…
</body>
</html>
【问题讨论】:
-
你能添加一个“实际”和一个“期望”样本吗?
-
你能解释一下你的意思是“实际”和“期望”吗
-
“实际”将是您当前拥有的,而“期望”是您想要的。