14

多くの行が折り畳まれていて、これらの折り畳みの上に新しいコードブロックなどを書いている状況によく遭遇します。「{」を入力するとすぐに、下のすべての折り畳みが開きます。vim がこれを行うのは正当なことですが、すべての折り畳みを再度閉じるのはイライラします。この状況を回避する方法はありますか?

4

1 に答える 1

21

同じ問題があり、この vimtipを使用して解決できました。

ヒントの説明の一部抜粋:

マーカー、構文、式の折りたたみなど、何らかの自動折りたたみ方法を使用している場合、折りたたみを開始するテキストを挿入すると、挿入ポイントの下にあるすべての折りたたみが自動的に開きます。これは非常に面倒です。これを回避するには、挿入モードに入るときは一時的に手動の折り方に切り替え、終了するときは元に戻すことができます。

秘訣は、編集の開始時にfoldmethodtoを設定することです。manual

autocmd InsertEnter * if !exists('w:last_fdm') | let w:last_fdm=&foldmethod | setlocal foldmethod=manual | endif

編集が完了したら、foldmethod元の値にリセットします。

autocmd InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif
于 2011-01-11T06:33:02.750 に答える