2011-01-07 11 views
12

Często spotykam się z sytuacją, w której mam wiele linii złożonych i piszę, powiedzmy nowy blok kodu, powyżej tych fałd. Jak tylko piszę "{", wszystkie fałdy poniżej otwierają się. Chociaż jest to zasadne, że vim to robi, irytujące jest ponowne zamknięcie wszystkich fałd. Czy istnieje sposób obejścia tej sytuacji?vim fałdy otwierają się, gdy dajesz niedopasowany nawias otwierający/nawias

+0

mogę” t odtworzyć ten problem za pomocą domyślnej instalacji vima i prostego pliku Java ... – krakover

+0

Nie mogę tego również odtworzyć. Ciekawe, czy włączono "showmatch"? Czy to ustawienie wpływa na zachowanie? –

+0

@ r.v Zastanawiam się, co masz w swoim "foldmarker"? – ZyX

Odpowiedz

18

Miałem ten sam problem i mogłem go rozwiązać, używając this vimtip.

mały fragment opisu wskazówka:

Jeśli używasz jakiejkolwiek automatycznej metody składanej, czy to marker, składni, lub wyrażenie składane, wstawianie tekstu, który rozpoczyna krotnie automatycznie otworzy wszystkie fałdy pod punkt wstawienia. To może być bardzo denerwujące. Aby obejść ten problem, można tymczasowo przełączyć się na metodę ręcznego składania po przejściu do trybu wstawiania i przełączać się ponownie po opuszczeniu go.

Sztuką jest, aby ustawić foldmethod do manual rozpoczyna się po montaż:

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

Kiedy skończysz edycję, reset foldmethod do jej pierwotnego wartość:

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

To działa. Dzięki! –

Powiązane problemy