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" 时有效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值