Vim:仅折叠顶层折叠
Posted
技术标签:
【中文标题】Vim:仅折叠顶层折叠【英文标题】:Vim: Fold top level folds only 【发布时间】:2011-07-01 17:53:02 【问题描述】:我在 Vim 中有一个带有语法折叠的长代码文件。
我知道如何打开所有折叠 (zR) 或关闭所有折叠 (zM),我知道如何增加或减少折叠级别 (zm, zr)。
但是,当我增加折叠级别时,最里面的折叠会关闭;相反,我希望最外面的折叠关闭,而最里面的折叠则展开。可以通过手动打开所有折叠并手动关闭每个***折叠来手动执行此操作,特别是对于我快速打开以获取代码概览的长文件来说,这非常乏味。
是否有任何快捷键可以做到这一点?还是我需要制作某种 Vim 函数来做到这一点?如果有,怎么做?
【问题讨论】:
zO
递归打开折叠。您可以使用zj
和zk
在折叠之间导航。
【参考方案1】:
我想您想将set foldnestmax=1
添加到您的$MYVIMRC
。
【讨论】:
@kevin 它将避免嵌套折叠,即只存在最外层的折叠。【参考方案2】:是的,您可以输入
:%foldc
关闭一层折叠(由外向内)。
【讨论】:
%
符号是干什么用的?
我知道这是旧的,但%
基本上是1,$
范围的快捷方式(所以,整个文件)【参考方案3】:
正如 Karl 所说,foldnestmax
设置可能就是您想要的。
zO
(即大写字母-o)打开所有嵌套折叠。
我还发现 zx
和 zv
很有帮助。
当我将 foldmethod=expr
与自定义折叠表达式一起使用时,我会经常修改表达式,使其仅折叠我想要折叠的内容。
【讨论】:
以上是关于Vim:仅折叠顶层折叠的主要内容,如果未能解决你的问题,请参考以下文章