Подтвердить что ты не робот

Складки vim открываются при предоставлении непревзойденной скобы/скобки

Я часто сталкиваюсь с ситуацией, когда у меня много сложенных строк, и я пишу, скажем, новый блок кода над этими складками. Как только я набираю '{', все складки внизу открываются. Несмотря на то, что vim делает это законным, это раздражает, чтобы снова закрыть все складки. Есть ли способ обойти эту ситуацию?

4b9b3361

Ответ 1

У меня была такая же проблема, и я смог решить ее с помощью этого vimtip.

Маленькая выдержка описания наконечника:

Если вы используете какой-либо метод автоматического складывания, будь то маркер, синтаксис или складка выражения, вставка текста, который начинает сгиб, автоматически откроет все складки под точкой вставки. Это может быть очень раздражающим. Чтобы обойти это, вы можете временно переключиться на метод ручного сброса при входе в режим вставки и вернуться после его выхода.

Трюк заключается в том, чтобы установить foldmethod на manual при запуске редактирования:

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

Когда вы закончите с редактированием, reset foldmethod в это исходное значение:

autocmd InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif