У меня была такая же проблема, и я мог решить ее, используя этот 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