我正在尝试学习如何在Vim中使用折叠。手动折叠效果很好,但我想知道如何通过缩进折叠。我希望它像这样工作:
+------
+--- | //Place marker here and press 'zf'
+---
+------
Run Code Online (Sandbox Code Playgroud)
将导致:
+------
<fold>
+------
Run Code Online (Sandbox Code Playgroud)
但是我得到
E350: Cannot create fold with current 'foldmethod'
任何想法为什么我会收到此错误?
另外,有没有办法在花括号之间创建折叠呢?
Men*_*ックス 10
如果您想要基于缩进的自动折叠,您需要将该foldmethod选项设置为indentvalue
:set foldmethod=indent
Run Code Online (Sandbox Code Playgroud)
这可能就是您收到该错误的原因。我想它是像上面那样设置的。
zf{motion} 或 {Visual}zf 运算符来创建折叠。 这仅在 'foldmethod' 为 "manual" 或 "marker" 时有效。新折叠将针对“手动”方法关闭。
你可以检查你的foldmethod以确认:set foldmethod?
每当您处于具有相同缩进的一系列行中时,您只需单击即可za折叠该块。
如果您想手动创建折叠,您需要将这次设置foldmethod为manual。
将光标放在其中一个大括号上,然后键入zf%将折叠 {} 之间的所有块