vim 中的折叠问题

vim 提供 6 中折叠方式
manual
手工定义折叠
indent
更多的缩进表示更高级别的折叠
expr
用表达式来定义折叠
syntax
用语法高亮来定义折叠
diff
对没有更改的文本进行折叠
marker
对文中的标志折叠


可用选项 'foldmethod' 来设定折叠方式: setfdm=*****
注意,每一种折叠方式不兼容,即:你不能用 expr 又用 marker 方式。
目前我一般使用的都是 indent 比较多。
使用时,用: set fdm=indent 命令来设置成 marker 折叠方式。
.vimrc 文件中添加设置,可以使得每次打 vi 都启动折叠方式。如添加: setfdm=syntax

折叠打开与折合
选取了折叠方式后,我们就可以对某些代码 实施我们需要的折叠了。

如果使用了 indent 方式, vim 会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
indent
对应的折叠代码有:
zc
折叠
zC
对所在范围内所有嵌套的折叠点进行折叠
zo
展开折叠
zO
对所在范围内所有嵌套的折叠点展开
[z
到当前打开的折叠的开始处。
]z
到当前打开的折叠的末尾处。
zj
向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk
向上移动到前一折叠的结束处。关闭的折叠也被计入。

使 用时在大括号中间输入以上命令。

当使用 marker 方式时,需要用标计来标识代码的折叠,系统默认是 {{{ }}} ,最好不要改动之:)
以使用下面的命令来创建和删除折叠:

zf
创建折叠,比如在 marker 方式下:
zf56G
,创建从当前行起到 56 行的代码折叠;
10zf
10zf+ zf10↓ ,创建从当前行起到后 10 行的代码折叠。
10zf-
zf10↑ ,创建从当前行起到之前 10 行的代码折叠。
在括号处 zf% ,创建从当前行起到对应的匹配的括号上去((), {} [] <> 等)。
zd
删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" "marker" 时有效。
zD
循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
仅当 'foldmethod' 设为 "manual" "marker" 时有效。
zE
除去 (Eliminate) 窗口里 所有 的折叠。
仅当 'foldmethod' 设为 "manual" "marker" 时有效。

你可能感兴趣的:(Linux)