Zazwyczaj otwieram kilka okien i utrzymuję niektóre bufory otwarte. Ponieważ moja MO w eksploracji buforów ma używać szybkich skrótów do :bn
i :bp
, chcę zamknąć niepotrzebne bufory przed rozpraszaniem mojego surfowania po buforze.
Ale ból polega na tym, że powoduje :bd
i :bw
powoduje zamknięcie okna, na wypadek, gdy mam wiele otwartych. Jak zamknąć (usunąć) bufor i pozostawić nienaruszone okna?
Rozwiązanie zainspirowane odpowiedzią @ peth
:command! BW :bn|:bd#
To jest proste. Nie działa dobrze przy otwartym tylko jednym buforze (mam różne zachowanie w zależności od sposobu otwierania plików), ale nie jest to duży problem. :)
Pomyślałem to trochę i w końcu wymyśliłem:
Oto wersja kopiuj / wklej dla mapowania klawiszy:
Lub polecenie dla twojego .vimrc (połączenie z: Bd):
Przetestowałem go dość dobrze i działa konsekwentnie w różnych warunkach. Jeśli zostanie użyty w ostatnim buforze, pozostawi Ci nowy pusty bufor.
źródło
Okno to rzutnia do bufora. (Zobacz
:help window
.) Nie możesz mieć okna bez powiązanego bufora. Możesz jednak użyć polecenia, takiego jak:enew
zastąpienie bieżącej zawartości okna pustym buforem.źródło
bufkill.vim Wtyczka działa tak samo. Lubię używać go z vim-command-w dla dodatkowej funkcjonalności i subtelności (na przykład, że zamknie podział, jeśli jest to ostatni bufor lub zamknie vim, jeśli jest to ostatni bufor / podział).
źródło
Oto inne rozwiązanie:
Wciśnięcie Ctrl + W, a następnie o, po cichu utworzy nowe okno i zamknie stare okno. Kursor pozostanie w nowym oknie. Istnieje wiele pozytywnych efektów:
źródło
Myślę, że problem polega na tym, że większość ludzi oczekuje, że bufor i okno vima będą czymś, czym nie są.
Ludzie zwykle myślą o oknie vima jako samodzielnym procesie, który ma własną listę buforów, ale niestety tak nie jest. Okno vim jest tylko oknem widoku jego buforów.
Dlatego powstaje wiele problemów, takich jak problem lub problem polegający na tym, że różne okna współużytkują tę samą listę buforów, więc nie można edytować bufora 1 w oknie A i pozwolić, aby okno B zignorowało bufor 1 na liście buforów.
Moim rozwiązaniem jest otwarcie dwóch instancji vima, abyś mógł mieć takie okno vim, jakie chcesz. Działa najlepiej na kafelkach WM.
źródło
Zwykle po prostu otwieram menu na dowolnym buforze. Otworzy to menu w lewym okienku i kursor będzie tam aktywny. Więc po prostu przełączam się z powrotem na aktywny bufor i usuwam bufor.
Następnie mogę otworzyć inny plik z menu.
Moje kroki to:
źródło