我知道如何使用zO
打开光标下的所有折叠。
但是如何反向?
我想要za
之类的东西,但也有递归性。
PS。我知道有zC
,但它关闭了与当前行相关的所有父对折,我想要关闭子对象。
答案 0 :(得分:4)
:foldc!
- 关闭范围`<,`>
中的所有折叠(阅读:h foldc
)您显然可以映射该序列。
答案 1 :(得分:2)
我实际上没有找到这个问题的确切答案,但是在某些情况下,一些可以解决问题的命令是:
zM
:递归关闭根褶及其所有子代zm
:将折叠级别增加1,即关闭尚未折叠的最里面的折叠级别相反的命令是:
zR
:所有折叠都是开放的zr
:将折叠级别降低一个答案 2 :(得分:0)
注意:该问题仅涉及当前子女。即关闭/打开直到当前的折叠水平,而不是一直以zC
,zO
,zA
,zM
,zR
的形式出现。
zx折叠:撤消手动打开和关闭的折叠:重新应用 'foldlevel',然后执行“ zv”:查看光标行。 还强制重新计算折叠。使用时这很有用 'foldexpr'并且缓冲区的更改方式导致 折叠无法正确更新。
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(我尚未对其进行测试)
答案 3 :(得分:0)
我也有很长时间了,我发现最接近的解决方案是使用zM
递归关闭所有折叠,然后使用zv
重新打开光标先前位置的行(收折前)。也许有帮助。
致谢。