Vim folding - 在光标下递归关闭所有子节点

rof*_*rol 7 vim folding

我知道如何打开光标下的所有折叠zO.

但是怎么做逆转?

我想要做的事情za,但也有递归.

PS.我知道有zC,但它关闭了与当前行相关的所有父级折叠,我想要关闭孩子.

maj*_*tor 5

  1. 关闭父折叠
  2. 选择闭合折叠和下一行
  3. :foldc!- 关闭范围内的所有折叠`<,`>(读取:h foldc

您显然可以映射该序列。

  • 当你提到 `:foldclose` 时我翻了个白眼,但令我惊讶的是 `:%foldc!` 确实有效。这当然值得点赞。 (2认同)

Man*_*idt 5

我实际上没有找到这个问题的确切答案,但在某些情况下可以作为解决方法的一些命令是:

  • zM:递归关闭根折叠及其所有子折叠
  • zm:将折叠级别增加一级,即关闭尚未折叠的最内层折叠

相反的命令是:

  • zR:所有折叠均打开
  • zr:将折叠级别减少一级