Problem: Przesunięcie linii pionowo zamyka fałdy

9

Kiedy przesuwam linie za pomocą m(np. :m+1), Wszystkie moje fałdy są zamknięte. Następnie mogę ponownie otworzyć składanie, zva kursor znajdzie się w pozycji, do której się przeniosłem. Używam składania ze {{{ }}}znakami i mam set foldmethod=markerw moim .vimrc.

Jak mogę zapobiec zamykaniu fałd przez vima podczas przesuwania linii?

dnieder
źródło
1
Nie mogę tego odtworzyć za pomocą vim -u NONE -U NONE -N. Może to być problem z vimrc lub wtyczką.
EvergreenTree
2
Zdarza mi się nawet z -u NONE -U NONE -N. Używam v7.4 na arch. Linux
Dnieder
1
@EvergreenTree Mam ten sam problem. Z vim -u NONE -U NONE -N fold-testi właśnie ustawienie foldmethod=marker. Używam Vima 7.4.712 na Arch. Jeśli spróbuję tego samego z Vimem na Vimie 7.4.160 na CentOS 7, otrzymam dokładnie odwrotne wyniki (wszystkie fałdy otwierają się podczas używania :m+1). A Vim 7.2.441 na CentOS 6 działa dobrze ... Wszystkie fold*ustawienia wydają się takie same na tych komputerach.
Martin Tournoij
1
To bardzo dziwne. To wygląda na błąd.
EvergreenTree,
3
Może to być spowodowane łatką 7.4.700, która próbuje zapobiec, że fałdy stają się nieważne w: komendy ruchu
Christian Brabandt

Odpowiedzi:

2

Możesz wyłączyć składanie przed :m+1użyciem za pomocą zi. Następnie włącz ją ponownie za pomocą zi.

Możesz również dodać specjalne mapowanie do tego w swoim .vimrc:

""move line up/down with Shift+up/down
nnoremap <S-Up> zi:m-2<CR>zi
nnoremap <S-Down> zi:m+<CR>zi
inoremap <S-Up> <Esc>zi:m-2<CR>zia
inoremap <S-Down> <Esc>zi:m+<CR>zia
użytkownik2683458
źródło
To zadziałało dla mnie. (chociaż użyłem różnych wiązań)
IanEdington,
1

Składanie jest dość skomplikowanym mechanizmem (patrz inna odpowiedź, którą podałem na temat składania dla szczegółowej dyskusji na temat skanowania składanego).

Aby udzielić pełnej odpowiedzi, musimy sprawdzić, jakiego rodzaju wtyczki ładujesz podczas uruchamiania instancji vima.

Założę się, że istnieje kilka wtyczek, które mucking przy domyślnych ustawieniach vima ( vim -u NONEpowinny były to odtworzyć). Każda wtyczka, która ją zmienia, foldmethodjest prawdopodobną przyczyną (spróbuję je usunąć 1 do 1 i zobaczę, co powoduje problem)

Jeśli nie chcesz w ogóle marnować wtyczek, polecam ręcznie dostosować ustawienia składni + parsowania, a następnie otworzyć bufor testowy, aby potwierdzić swoją funkcjonalność. To może być frustrująca podróż, aby dobrze się grała, ale przy pewnym nieustannym kopaniu :helppowinieneś być w stanie pokłócić się ze składającą się bestią.

Dan Bradbury
źródło