儘管使用Vim十年,有時候我仍然在摺疊中掙扎。這個問題中的所有內容都可以在Vim 7.3中重現,沒有.vimrc。我正在使用foldmethod =標記與默認foldMarkkers。複製和關閉Vim中的摺疊
考慮以下嵌套摺疊結構(使用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,但折4保持zo
後打開。如果我使用zC
,它會關閉摺疊3和摺疊0,但當我做2zo
時摺疊4仍然打開。這不是我期望遞歸摺疊工作的方式。有沒有辦法實現zc
,但也遞歸地關閉所有摺疊?
我工作的公司指定摺疊是通過匹配對來定義的,沒有明確的foldlevel,因此涉及顯式foldlevel的解決方案是沒有用的。
這是一個非常好的解決方案,但我發現屏幕由於視覺選擇而閃爍,相當分散注意力。 –
如果您對此感覺強烈,可以先關閉突出顯示('hi Visual ...'),然後再打開。但是這可能比它的價值更麻煩。 –
優秀!在每一種情況下都需要進行一些調整,但你已經解決了這個問題。謝謝。 –