虽然我已经使用Vim十年了,但有时候我仍然在折叠方面遇到困难。在Vim 7.3中,我使用foldmethod=marker和默认的foldmarkers,没有任何.vimrc文件。
考虑以下嵌套的折叠结构(使用foldmethod=marker和默认标记)。第一列是行号(fold0没有缩进)。
1|{{{ fold0
2| {{{ fold1
3| {{{ fold2
4| }}}
5| }}}
6|}}}
假设
fold1
和fold2
都关闭了,光标在第2行。我可以使用yyp
复制并粘贴闭合的折叠,但是新插入的折叠都是展开的。我希望使用“put”命令产生的折叠是关闭的。或者,是否有一种方便的方法在“put”之后关闭它们?也就是说,从这个位置开始(光标在第6行):
1|{{{ fold0
2|+--- 4 lines: fold1----------------------------------------
6| {{{ fold3
7| {{{ fold4
8| }}}
9| }}}
10|}}}
我可以使用
zc
关闭fold3,但在zo
后,fold4仍然保持打开状态。如果我使用zC
,它会关闭fold3和fold0,但是当我执行2zo
时,fold4仍然保持打开状态。这不是我期望递归折叠关闭的方式。是否有一种方法可以实现zc
,同时也递归地关闭所有包含的折叠?我工作的公司规定折叠由匹配对定义,没有明确的折叠级别,因此涉及明确折叠级别的解决方案无用。
hi Visual ...
),然后再重新打开。但这可能会带来更多的麻烦,不值得这样做。 - Matthew Strawbridge