Skip to content

Neovim 0.10 内置折叠命令

创建折叠

并非必须在一个定义域符号内(比如括号),完全无关的两行也能折叠。

  • 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: 移动到上一个折叠的关闭处。