如何一次在整个文件中折叠到 Vim 中的特定级别?

Eva*_*van 6 vim

我想在 Vim 中按下一个按钮并折叠所有代码,以便只显示特定(和可变)缩进级别的代码。例如,当我只想查看方法名称而不是缩进的例程时,这非常有用。

Vim: Fold top level folds only ”问题有一个缩进级别的解决方案,但每次更改级别时都需要设置环境。

当我的光标处于缩进级别(比如级别 2)时,我希望整个文件在所有方法中都折叠到该缩进级别。

这是否内置于 Vim 的某个地方?有谁知道一个很好的插件可以做到这一点?

ib.*_*ib. 5

配置由缩进定义的折叠:

:setl foldmethod=indent
Run Code Online (Sandbox Code Playgroud)

并尝试以下命令:

:let &l:foldlevel = indent('.') / &shiftwidth
Run Code Online (Sandbox Code Playgroud)

要快速访问此命令,请为其创建映射,如下所示:

:nnoremap <silent> <leader>z :let&l:fdl=indent('.')/&sw<cr>
Run Code Online (Sandbox Code Playgroud)