Vim:仅折叠顶级折叠

时间:2011-02-22 05:00:15

标签: vim folding

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

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

然而,当我增加折叠水平时,最内层的折叠被关闭;相反,我希望最内层的折叠关闭,而最内层的折叠展开。可以手动打开所有折叠并手动关闭每个顶层折叠,这是令人难以置信的繁琐,特别是长文件,我快速打开以获得代码的概述。

是否有任何关键的快捷方式可以做到这一点?或者我需要制作某种Vim功能才能执行此操作?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:33)

我认为您要将set foldnestmax=1添加到$MYVIMRC

答案 1 :(得分:19)

是的,您可以输入

:%foldc

关闭一个级别的折叠(在外面)。

答案 2 :(得分:6)

正如卡尔所说,foldnestmax设置可能就是你想要的。

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

我还发现zxzv非常有帮助。

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