34

我在 Vim 中有一个带有语法折叠的长代码文件。

我知道如何打开所有折叠 (zR) 或关闭所有折叠 (zM),并且我知道如何增加或减少折叠级别 (zm, zr)。

但是,当我增加 foldlevel 时,最里面的折叠是关闭的;相反,我希望最外面的折叠关闭,而最里面的折叠则展开。可以通过手动打开所有折叠并手动关闭每个顶级折叠来手动执行此操作,特别是对于我快速打开以获取代码概述的长文件来说,这非常乏味。

有没有任何快捷键可以做到这一点?还是我需要制作某种 Vim 函数来做到这一点?如果是这样,怎么办?

4

3 回答 3

37

我想你想添加set foldnestmax=1到你的$MYVIMRC.

于 2011-02-22T06:27:49.533 回答
23

是的,您可以输入

:%foldc

关闭一层折叠(外向内)。

于 2011-04-20T06:29:19.840 回答
6

正如 Karl 所说,foldnestmax设置可能是您想要的。

zO(即,大写字母-o)打开所有嵌套折叠。

zx我也觉得zv非常有帮助。

当我使用foldmethod=expr自定义折叠表达式时,我会经常修改表达式,使其仅折叠我想要折叠的内容。

于 2011-02-22T06:39:52.060 回答