Neovim 0.10 内置折叠命令
- 官方文档:https://neovim.io/doc/user/fold.html#fold-commands
- 需要
foldmethod
为 "manual" 或 "marker"(默认值是 "manual")。
创建折叠
并非必须在一个定义域符号内(比如括号),完全无关的两行也能折叠。
zf{motion}
/{Visual}zf
{count}zF
:{range}fo[ld]
删除折叠
- zd:
- 删除光标处的折叠。
- 有嵌套时,删除外层折叠,内层折叠将上浮一个等级。
- 光标在内层折叠处执行删除,则不影响外层。
- 有删除比预期更多的折叠的风险。
- zD: 递归地删除光标处的所有折叠。
- zE: 删除当前窗口中的所有折叠。
开关折叠
- 小于
foldminlines
所设置的行(默认值是 1)将始终显示。 - 关闭折叠将设置
foldenable
。 foldenable
fen
: 当值为 off 时,所有折叠将被打开,默认值为 on。
- za: 开关光标处的折叠。
- zA: 递归地开关光标处的所有折叠。
关闭折叠
- zc:
- 关闭光标处的折叠。
- 有嵌套时,仅关闭光标所在处最内层的折叠。
- zC: 递归地关闭光标处的所有折叠。
:{range}foldc[lose][!]
:- 关闭
{range}
范围内一个等级的折叠。 - 如果使用
!
,则关闭范围内的所有折叠。
- 关闭
打开折叠
- zo: 打开光标处的折叠。
- zO: 递归地打开光标处的所有折叠。
- zv: 一直打开折叠直到光标处能显示。
:{range}foldo[pen][!]
:- 打开
{range}
范围内一个等级的折叠。 - 如果使用
!
,则打开范围内的所有折叠。
- 打开
- zn: 重置
foldenable
,打开所有折叠。 - zN: 设置
foldenable
,所有折叠恢复到原来的状态。 - zi: 倒置
foldenable
。
不熟练
- zx: 撤销手动打开或关闭的折叠。
- zX: 递归地撤销手动打开或关闭的折叠。
- zm: 从
foldlevel
减去v:count1
。 - zM: 关闭所有折叠,并将
foldlevel
设为 0。 - zr: 将
v:count1
加入foldlevel
。 - zR: 打开所有折叠,设置
foldlevel
为最高等级。
在折叠处移动
[z
: 移动到折叠的开始处。]z
: 移动到折叠的结束处。- zj: 移动到下一个折叠的开始处。
- zk: 移动到上一个折叠的关闭处。