默认折叠

默认折叠

我怎样才能启用和Vim 中的代码折叠?

我需要改变什么吗~/.vimrc

我输入z+az+cz+o但没有任何反应。

这是一篇关于折叠的文章:Vim 中的代码折叠

答案1

默认折叠

Vim 的默认折叠方法是manual手动创建折叠;否则,无法使用 、 或 来关闭或打开折叠,zazo您所述。但是,您可以通过inzc创建折叠zf{motion}普通的模式或zf视觉的模式;例如,zfj为当前行和下一行创建折叠普通的模式。

折叠依据indent

@Anthon 接受的答案描述了如何将折叠方法设置为indent;即折叠由压痕的级别来定义。

折叠依据syntax

更方便的方式是,可以根据当前缓冲区的语言语法自动创建折叠。如果您使用的是编程语言,我们称其为L,并且你有折叠定义L(例如你安装了一个Vim插件,其中的折叠信息L被定义为;例如vim对于 C/C++,或者python模式对于Python),您只需将折叠方法设置为syntax

set foldmethod=syntax

就是这样。处理折叠最有用的命令是:

  • zo在光标处打开折叠。
  • zShift+o打开光标处的所有折叠。
  • zc关闭光标处的折叠。
  • zm将 增加foldlevel一。
  • zShift+m关闭所有打开的折叠。
  • zr将 减foldlevel一。
  • zShift+r将 减至foldlevel零——所有折叠都将打开。

答案2

不,您不必将链接到的页面中的命令放入您的 中~/.vimrc,您只需在发出命令后键入它们:即可vim获取命令提示符。

但是,如果您输入以下行:

set foldmethod=indent   
set foldnestmax=10
set nofoldenable
set foldlevel=2

如您提供的链接中所示,在您的 中~/.vimrc,您不必每次想要在文件中使用折叠时都键入它们。确保set nofoldenable打开时文件“正常”,即未折叠。

答案3

您不必系统地使用它:我通常通过动作或部分手动选择折叠。例如,折叠一个段落是zfip,折叠接下来的 20 行是zf20j。用于za切换和zd删除。

这需要更多的工作,但可以让你的折叠反映手头的任务。

答案4

如果有人想更改默认折叠方法并在新文件打开时停止自动折叠,请在下面的 vim 配置文件中添加此代码:

setlocal foldmethod=syntax         
setlocal foldlevelstart=99

setlocal foldmethod是更改默认Manual折叠方式并foldlevelstart在文件打开时停止自动折叠。您可以更改该值以自定义自动折叠级别。检查此处的文档:https://neovim.io/doc/user/options.html#'foldlevelstart'

相关内容