星期日, 九月 04, 2011

VIM学习笔记 折叠 (Fold)

当我们查看很长的文本时(比如程序代码),可以使用:set foldenable命令来启动折叠。首先将内容按照其结构折叠起来,查看文件的大纲,然后再针对特定的部分展开折叠,显示文本的详细内容。

fold_close

Vim将折叠等同于行来对待——你可以使用j或k命令,移动跳过包含多行的整个折叠;也可以使用y或d命令,复制或删除某个折叠。

通常在折叠处向左或向右移动光标,或者进入插入模式,都将会自动打开折叠。我们也可以使用以下命令定义快捷键,使用空格键关闭当前打开的折叠,或者打开当前关闭的折叠。

:nnoremap <space> za

按照折叠所依据的规则,可以分为Manual(手工折叠)、Indent(缩进折叠)、Marker(标记折叠)和Syntax(语法折叠)等几种。

Manual Fold

使用以下命令,启用手工折叠。

:set foldmethod=manual

在可视化模式下,使用以下命令,将折叠选中的文本:

zf

通过组合使用移动命令,可以折叠指定的行。例如:使用zf70j命令,将折叠光标之后的70行;使用5zF命令,将当前行及随后4行折叠起来;使用zf7G命令,将当前行至全文第7行折叠起来。

我们也可以使用以下命令,折叠括号(比如()、[]、{}、><等)包围的区域:

zfa(

Vim并不会自动记忆手工折叠。但你可以使用以下命令,来保存当前的折叠状态:

:mkview

在下次打开文档时,使用以下命令,来载入记忆的折叠信息:

:loadview

可以使用以下命令,查看关于手工折叠的帮助信息:

:help fold-manual

Indent Fold

使用以下命令,启用缩进折叠。所有文本将按照(选项shiftwidth 定义的)缩进层次自动折叠。

:set foldmethod=indent

使用zm命令,可以手动折叠缩进;而利用zr命令,则可以打开折叠的缩进。

使用以下命令,将可以根据指定的级别折叠缩进:

:set foldlevel=1

可以使用以下命令,查看关于缩进折叠的帮助信息:

:help fold-indent

Syntax Fold

使用以下命令,启用语法折叠。所有文本将按照语法结构自动折叠。

:set foldmethod=syntax

可以使用以下命令,查看关于语法折叠的帮助信息:

:help fold-syntax

Marker Fold

使用以下命令,启用标记折叠。所有文本将按照特定标记(默认为{{{和}}})自动折叠。

:set foldmethod=marker

我们可以利用标记折叠,在文本中同时体现结构和内容,并且能够快速跳转到文件的不同部分。

fold_marker

可以使用以下命令,查看关于标记折叠的帮助信息:

:help fold-marker

折叠选项

使用:set foldcolumn=N命令,将在屏幕左侧显示一个折叠标识列,分别用“-”和“+”而表示打开和关闭的折叠。其中,N是一个0-12的整数,用于指定显示的宽度。

foldcolumn

使用以下命令,可以查看关于折叠的帮助信息:

:help folding

命令小结
za打开/关闭当前的折叠
zc关闭当前打开的折叠
zo打开当前的折叠
zm关闭所有折叠
zM关闭所有折叠及其嵌套的折叠
zr打开所有折叠
zR打开所有折叠及其嵌套的折叠
zd删除当前折叠
zE删除所有折叠
zj移动至下一个折叠
zk移动至上一个折叠
zn禁用折叠
zN启用折叠

Ver: 1.0<上一篇 | 目录 下一篇>