折叠vim / gvim中的注释和所有函数

时间:2009-11-16 19:49:31

标签: vim folding

我是vim的新手用户,我无法在互联网上找到如何折叠函数,我已经弄清楚如何使用zfa}和zfa折叠C中的参数列表。但我无法弄清楚如何折叠评论部分。我该怎么做?

第二个问题但相关,是否有办法同时折叠文件中的所有函数/参数列表/注释?

3 个答案:

答案 0 :(得分:21)

您所指的功能称为“折叠”(请参阅​​:help usr_28)。 z f 命令用于手动创建折叠,仅在foldmethod选项设置为“marker”或“manual”时使用。在您提供的示例中,您将在a}a)文本对象指定的区域上创建折叠(请参阅:help usr_4.8)。

对于C,您可以setlocal foldmethod=syntax,折叠区域将由语法规则自动确定。只应对{C}文件执行此操作,方法是将设置放在~/.vim/ftplugin/c.vim中,或将以下autocmd放在~/.vimrc中。

autocmd FileType c setlocal foldmethod=syntax

N.B。这两者都要求启用文件类型检测(filetype on),并且ftplugin解决方案要求启用文件类型插件(filetype plugin on)。后者是前者的超集,因此您~/.vimrc中不需要这两个命令。

至于打开/关闭当前缓冲区中的所有折叠,那些是 z R z M 命令。

答案 1 :(得分:5)

将以下设置添加到〜/ .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可用于使这些折叠恰到好处。如果你遇到困难,请始终记住“帮助:折叠”中的全能帮助文件。

来源:http://smartic.us/2009/04/06/code-folding-in-vim/

答案 2 :(得分:0)

假设您已根据需要设置折叠区域,请将foldlevel设置为所需级别。