Vim 中的折叠函数

有没有什么方法或工具可以在 vim 中折叠函数,比如 Visual Studio 或 Eclipse?

49318 次浏览

是的,它被绑定到‘ z’键,例如 zO 打开所有的折叠。有关更多信息,请参见 vim 中的“ : help old”。您可以根据非常简单的规则进行折叠,比如缩进,或者根据代码语法进行折叠。

    Vim folding commands
---------------------------------
zf#j creates a fold from the cursor down # lines.
zf/ string creates a fold from the cursor to string .
zj moves the cursor to the next fold.
zk moves the cursor to the previous fold.
za toggle a fold at the cursor.
zo opens a fold at the cursor.
zO opens all folds at the cursor.
zc closes a fold under cursor.
zm increases the foldlevel by one.
zM closes all open folds.
zr decreases the foldlevel by one.
zR decreases the foldlevel to zero -- all folds will be open.
zd deletes the fold at the cursor.
zE deletes all folds.
[z move to start of open fold.
]z move to end of open fold.

来源: vim docs。

:set foldmethod=syntax

应该折叠所有的函数和其他块自动,如果你有语法文件为您的语言。

Vim 具有优秀的折叠支持。Vim 帮助系统中有很好的文档。只要打开 Vim 然后做

:help usr_28.txt

读完之后,你还可以阅读

:help folding

了解更多信息。

是的。VIM 具有卓越的折叠能力。我不喜欢学习太多的控件,我更喜欢自动化,所以这里是我个人使用的:

在我的. vimrc:

set foldmethod=indent
set foldlevel=1
set foldclose=all

这将自动折叠您打开的文件,基于缩进,对于所有缩进超过1级。折叠关闭选项使折叠自动重新关闭后,我导航出的折叠。

文件控制:

zo - opens folds
zc - closes fold
zm - increases auto fold depth
zr - reduces auto fold depth

如果你不喜欢这些褶皱,就用

: set foldmethod=syntax

或按:

zR

让他们都消失。