vim折叠设置(转载)

set foldmethod=indent "set default foldmethod
"zi 打开关闭折叠
"zv 查看此行
zm 关闭折叠
zM 关闭所有
zr 打开
zR 打开所有
zc 折叠当前行
zo 打开当前折叠
zd 删除折叠
zD 删除所有折叠


1. 折叠方式
可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。
有 6 种方法来选定折叠:
manual           手工定义折叠
indent             更多的缩进表示更高级别的折叠
expr                用表达式来定义折叠
syntax             用语法高亮来定义折叠
diff                  对没有更改的文本进行折叠
marker            对文中的标志折叠
注意,每一种折叠方式不兼容,如不能即用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

使用时,用:set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。
要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。

2. 折叠命令
选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:
如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
在可折叠处(大括号中间):
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" 时有效。

关于vim的代码折叠,小弟也是初学,仅做参考。
### 配置代码折叠Vim 编辑器中配置代码折叠可以通过设置特定选项来实现。为了使代码折叠功能生效,通常需要启用 `foldmethod` 并选择合适的折叠方式。 对于自动识别文件类型的折叠方法,可以将以下配置加入到 `.vimrc` 文件中: ```vim set foldmethod=syntax " 使用语法高亮来进行折叠 ``` 如果希望手动定义折叠区域,则可采用标记符方式进行配置: ```vim set foldmethod=marker " 使用标记符进行折叠 set foldmarker={{{,}}} " 定义起始和结束标志 ``` 另外一种常见的做法是在初始化脚本里指定基于表达式的折叠逻辑: ```vim set foldmethod=expr " 启用表达式计算折叠 set foldexpr=nvim_treesitter#foldexpr() " 利用树形结构解析库nvim-treesitter作为折叠依据 ``` 除了上述全局设定之外,在某些特殊场景下还可以针对具体编程语言调整其默认行为。例如 Markdown 文档支持如下自定义项[^1]: ```vim let g:vim_markdown_folding_disabled = 0 " 开启Markdown文档内部的折叠特性 ``` 通过以上几种途径之一即可完成基本的代码折叠环境搭建工作。值得注意的是,不同的折旧策略适用于不同类型的任务需求;因此建议根据实际应用场景灵活选用最恰当的一种方案。 ### 命令操作 一旦完成了必要的前期准备工作之后,就可以利用一系列快捷指令轻松管理已有的折叠区块了。下面列举了一些常用的交互命令及其作用说明[^5]: - **zf**:创建一个新的折叠区段; - **zF**:从当前位置向前方生成一个新折叠; - **zd/zD**:分别用于移除单层或多级嵌套的现有折叠对象; - **zE**:清除整个视窗范围内的全部折叠状态(仅限于manual/marker模式); - **zo/zc**:展开或者收拢选定位置处的一个折叠单元; - **zM/zR**:一次性关闭或打开所有可见级别的子节点。 掌握这些基础的操作可以帮助用户更高效地浏览复杂项目中的源码片段而不至于迷失方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值