我是 vim 的新手,我无法在互联网上找到如何折叠函数,我已经弄清楚如何使用 zfa} 和 zfa 折叠 C 中的参数列表)。但我不知道如何折叠评论部分。我怎么做?
第二个问题但相关,有没有办法同时折叠文件中的所有函数/参数列表/注释?
您所指的功能称为“折叠”(请参阅 参考资料:help usr_28
)。该zf命令用于手动创建折叠,并且仅在foldmethod
选项设置为“标记”或“手动”时使用。在您给出的示例中,您在由a}
和a)
文本对象指定的区域上创建折叠(请参阅 参考资料:help usr_4.8
)。
对于 C,您可以setlocal foldmethod=syntax
并且折叠区域将由语法规则自动确定。这只能通过将设置放入~/.vim/ftplugin/c.vim
或将以下 autocmd 放入您的~/.vimrc
.
autocmd FileType c setlocal foldmethod=syntax
注意这两个都需要启用文件类型检测(filetype on
),而 ftplugin 解决方案需要启用文件类型插件(filetype plugin on
)。后者是前者的超集,因此您的~/.vimrc
.
至于打开/关闭当前缓冲区中的所有折叠,分别是zR和zM命令。
将以下设置添加到 ~/.gvimrc:
"folding settings
set foldmethod=indent "fold based on indent
set foldnestmax=10 "deepest fold is 10 levels
set nofoldenable "dont fold by default
set foldlevel=1 "this is just what i use
然后你可以用 za 切换折叠。你可以用 zM 折叠所有东西,用 zR 展开所有东西。zm 和 zr 可用于使这些折叠恰到好处。如果遇到困难,请始终记住“help :folding”中的万能帮助文件。
假设您已按照您的需要设置折叠区域,请设置foldlevel
为所需的级别。