同一个文件是否可以根据标记和语法使用折叠?
答案 0 :(得分:5)
由于foldmethod
一次只能设置为一个,我认为你真正做到这一点的唯一方法就是使用:set foldmethod=expr
并使用foldexpr
破解,甚至然后我不确定它能不能完全按照你想要的那样做。
所以,简短的回答:没有
答案很长:如果你敢于看到能否获得理想的结果,可能会与foldexpr
混在一起
答案 1 :(得分:1)
也许您可以通过其他语法规则来模拟您的标记?
但没有更多的投入就很难说。
答案 2 :(得分:1)
AutoFold.vim插件尝试解决此问题:http://www.vim.org/scripts/script.php?script_id=925
作为替代方案,我认为通过为标记引入新的语法规则,我自己会有所改变。不幸的是,这需要在注释的任何语法规则之前声明,否则注释规则将掩盖我们的标记规则。
所以我试图尽早插入我的规则:
:syn clear
:syn region myMarkerFold matchgroup=myDummyGroup start="{{{" end ="}}}" transparent fold
:exec "runtime! syntax/" . &filetype . ".vim"
它没有奏效。最后一行立即清除了我的自定义规则。删除最后一行,折叠工作,但当然没有语言匹配或突出显示! (顺便说一句,我是在.vim文件上测试它。)