Vim складывается, открывая непревзойденную открывающую скобку / скобку - PullRequest
13 голосов
/ 08 января 2011

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

1 Ответ

19 голосов
/ 11 января 2011

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

Небольшая выдержка из описания подсказки:

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

Хитрость заключается в том, чтобы установить foldmethod в 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
...