【发布时间】:2014-03-05 05:25:45
【问题描述】:
我知道如何用zO打开光标下的所有折叠。
但是怎么做反向呢?
我想要像 za 这样的东西,但也需要递归。
PS。我知道有zC,但它关闭了与当前行相关的所有父折叠,我想关闭子。
【问题讨论】:
我知道如何用zO打开光标下的所有折叠。
但是怎么做反向呢?
我想要像 za 这样的东西,但也需要递归。
PS。我知道有zC,但它关闭了与当前行相关的所有父折叠,我想关闭子。
【问题讨论】:
我也有这个需求很长一段时间,我发现最接近的解决方案是使用 zM 递归地关闭所有折叠,然后 zv 在光标上一个位置重新打开行(在关闭折叠之前) .也许有帮助。
问候。
【讨论】:
注意:这个问题只涉及当前的孩子。即关闭/打开直到当前折叠水平,而不是一直像zC、zO、zA、zM、zR。
zx folds:撤消手动打开和关闭的折叠:重新应用 'foldlevel',然后执行“zv”:查看光标线。 还强制重新计算折叠。这在使用时很有用 'foldexpr' 并且缓冲区的更改方式会导致 folds 不能正确更新。
zc 关闭折叠文本
我认为您想将两者结合起来:
zxzc。或重新映射:nnoremap zxc zxzc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
顺便说一句:
做相反的事情,打开递归所有孩子:zczA
致谢:https://vi.stackexchange.com/a/16046/29452
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
或以递归方式打开/关闭所需范围的折叠:
视觉选择范围的提示:
]z jump to end of current open fold.
[z jump to beginning of current open fold.
zj moves the cursor to the next fold.
zk moves the cursor to the previous fold.
在 Vim 中跳过闭合折叠:https://stackoverflow.com/a/9407015/9391770(我还没有测试过)
【讨论】:
我实际上并没有找到这个问题的确切答案,但在某些情况下可能是一些解决方法的命令是:
zM: 递归关闭根折叠及其所有子节点zm:将 foldlevel 增加一,即关闭尚未折叠的最内层折叠相反的命令是:
zR:所有折叠都打开了zr: 将 foldlevel 减一【讨论】:
:foldc! - 关闭`<,`> 范围内的所有折叠(阅读:h foldc)您显然可以映射该序列。
【讨论】:
:foldclose 时我翻了个白眼,但令我惊讶的是:%foldc! 确实有效。这当然值得一票。