我在Vim中有一个带有语法折叠的长代码文件。
我知道如何打开所有折叠(zR)或关闭所有折叠(zM),我知道如何增加或减少折叠级别(zm,zr)。
然而,当我增加折叠水平时,最内层的折叠被关闭;相反,我希望最内层的折叠关闭,而最内层的折叠展开。可以手动打开所有折叠并手动关闭每个顶层折叠,这是令人难以置信的繁琐,特别是长文件,我快速打开以获得代码的概述。
是否有任何关键的快捷方式可以做到这一点?或者我需要制作某种Vim功能才能执行此操作?如果是这样,怎么样?
答案 0 :(得分:33)
我认为您要将set foldnestmax=1
添加到$MYVIMRC
。
答案 1 :(得分:19)
是的,您可以输入
:%foldc
关闭一个级别的折叠(在外面)。
答案 2 :(得分:6)
正如卡尔所说,foldnestmax
设置可能就是你想要的。
zO
(即大写字母-o)打开所有嵌套折叠。
我还发现zx
和zv
非常有帮助。
当我将foldmethod=expr
与自定义折叠表达式一起使用时,我会经常修改表达式,使其仅折叠我想要折叠的内容。