Vim Tip - 折叠(Folding)

·67 字·1 分钟
Vim vim folding
n3xtchen
作者
n3xtchen
Sharing Funny Tech With You

基本命令 #

zo 打开当前光标下的折叠
zO 打开当前光标下的所有折叠

zc 关闭当前光标下的折叠
zC 关闭当前光标下的所有折叠

za zo/zc
zA zO/zC

zm 关闭一级折叠层(foldlevel)
zM 关闭所有的折叠层
zr 打开一级折叠层
zR 打开所有折叠层

zj 移到当前光标的下一个折叠
zk 移到当前光标的上一个折叠
[z 移到当前打开折叠的起始位置
]z 移到当前打开折叠的结束位置

" 折叠方式为 manual 或 marker时,下面命令可用
zf{motion}/{Visual}zf 创建一个折叠
{n}ZF 创建当前光标下的n行的折叠
:{range}fo[ld]  创建范围行内的
zd 删除当前坐标折叠
zD 删除当前坐标中的所有折叠
zE 删除全部的折叠

折叠规则 #

" 手动折叠,使用 zf/zF/zd/zD/zE 自定义折叠规则
:set foldmethod=manual

" 语法折叠,根据相应编程语言的语法自动折叠
:set foldmethod=syntax

" 缩进折叠,根据缩进层次(shiftwidth)自动锁进
:set foldmethod=indent

" 特定标记折叠,所有文本将按照特定标记(默认为\{\{\{和\}\}\})自动折叠。
:set foldmethod=marker