设定折叠方式
:set fdm=marker
在.vimrc文件中添加设置,可以使得每次打开vi 都启动折叠方式。如添加:set fdm=syntax
vim 提供 6中折叠方式
manual 手工定义折叠
indent 更多的缩进表示更高级别的折叠
expr 用表达式来定义折叠
syntax 用语法高亮来定义折叠
diff 对没有更改的文本进行折叠
marker 对文中的标志折叠
试了下,marker好用一些
创建折叠
zf 创建折叠,可以按照前面的方式进行折叠,也可以选中代码后按zf进行折叠。
zf20 创建折叠,折叠当前行以下的20行
zf10G 折叠当前行到第10行的代码,vim会在折叠的开始和结束自动添加三个连续的花括号作为标记
zfGG 折叠当前行到文档末尾的代码
zF 在当前行创建折叠。当一开始就计划要折叠所写代码的时候,可以用该命令创建一对折叠符号,然后再往里面填写内容
":5,10fo" 在vim中运行该命令会在折叠 5-10 行中的代码,可以用其它数字代替之。
删除折叠
zd 删除光标下的折叠
zD 删除光标下的折叠,以及嵌套的折叠
zE 删除窗口内的所有折叠。仅当 manual 和 marker 折叠方法下有效
打开和关闭折叠
zr 打开全部折叠
zm 关闭全部折叠
zo 打开光标下的折叠
zO 打开光标下的折叠,以及嵌套的折叠
zc 关闭光标下的折叠
zC 关闭光标下的折叠,以及嵌套的折叠
za 当光标在关闭折叠上时,打开之。在打开折叠上时,关闭之
zA 和za类似,不过对当前折叠和其嵌套折叠都有效
zv 打开当前光标所在折叠,仅打开足够的折叠使光标所在的行不被折叠
zr和zm 一层一层打开折叠和一层一层关闭折叠,这两个命令会递减和递增一个叫foldlevel的变量。如果你发现zm和zr不灵了,那有可能是你连续按的zr或zm次数多了,只要多按几次让foldlevel回到正常状态即可。执行以下zR和zM也可直接让foldlevel回到正常状态。
zR和zM 打开所有折叠,设置foldlevel为最高级别。关闭所有折叠,设置foldlevel为0。
在折叠间移动
[z 到当前打开折叠的开始。如果已在开始处,移到包含这个折叠的折叠开始处。
]z 到当前打开折叠的结束。如果已在结束处,移到包含这个折叠的折叠结束处。
zj 把光标移动到下一个折叠的开始处。
zk 把光标移动到前一个折叠的结束处。
帮助文档
在vim中运行 :h Folding 命令,查看折叠的帮助文档
原文:https://blog.csdn.net/zcube/article/details/42325741