Vim:仅折叠顶层折叠
我在Vim中有一个语法折叠的长代码文件 我知道如何打开所有折叠(zR)或关闭所有折叠(zM),我知道如何增加或减少折叠级别(zM,zR) 然而,当我增加折叠级别时,最里面的折叠是闭合的;相反,我希望最外层的褶皱闭合,而最内层的褶皱展开。可以通过手动打开所有折叠并手动关闭每个顶层折叠来实现这一点。特别是对于我快速打开以获得代码概述的长文件,这是令人难以置信的乏味Vim:仅折叠顶层折叠,vim,folding,Vim,Folding,我在Vim中有一个语法折叠的长代码文件 我知道如何打开所有折叠(zR)或关闭所有折叠(zM),我知道如何增加或减少折叠级别(zM,zR) 然而,当我增加折叠级别时,最里面的折叠是闭合的;相反,我希望最外层的褶皱闭合,而最内层的褶皱展开。可以通过手动打开所有折叠并手动关闭每个顶层折叠来实现这一点。特别是对于我快速打开以获得代码概述的长文件,这是令人难以置信的乏味 有什么快捷键可以做到这一点吗?或者我需要做一些Vim函数来实现这一点吗?如果是这样的话,怎么做?我想你应该把设置foldnestmax=
有什么快捷键可以做到这一点吗?或者我需要做一些Vim函数来实现这一点吗?如果是这样的话,怎么做?我想你应该把
设置foldnestmax=1
添加到你的$MYVIMRC
中,正如卡尔所说,foldnestmax
设置可能就是你想要的
zO
(即大写字母o)打开所有嵌套折叠
我还发现zx
和zv
非常有用
当我对自定义折叠表达式使用foldmethod=expr
时,我通常会修改表达式,使其仅折叠我想要折叠的内容。是的,您可以键入
:%foldc
关闭一层折叠(从外到内)。@kevin它将避免嵌套折叠(即只有最外层的折叠出现)。
%
符号是什么?我知道这很旧,但%
基本上是范围1,$
的快捷方式(因此,整个文件)zO
以递归方式打开折叠。您可以使用zj
和zk
在褶皱之间导航。