Powiedz, że jest to bieżąca struktura mojego okna:
+ ----- + ---------------------------- | | | A | | | + ----- + | | | B |
Kolejność A i B nie jest całkiem naturalna. Byłoby lepiej, gdyby B był na górze.
Jeśli jednak przejdę <C-w>K
, B będzie na samym szczycie wszystkich okien, co nie jest tym, czego chcę. Jak mogę umieścić B powyżej A, ale nie powyżej żadnego innego okna, które jest już powyżej A?
A jeśli dwa okna są podzielone w pionie, jak mogę je zmienić na poziomy?
split
vim-windows
Jason Hu
źródło
źródło
Odpowiedzi:
Aby zamienić dwie części podzielonego okna, po prostu wykonaj:
<C-w> <C-r>
źródło
:h CTRL-W_CTRL-R
:The second window becomes the first one, the third one becomes the second one, etc.
Tak więc, jeśli masz 3 podziały, kursor na dolnym i uderzy<c-w><c-r>
w trzecie okno będzie na szczycie dwóch pozostałych, o które OP nie prosił:How can I put B above A, but not above any other window that is already above A?
W celu zamiany
window
pozycji efekt jest równoważny buforom wymiany wyświetlanym przez te dwa okna.np. jeśli okno A ma bufor 2, a okno B ma bufor 8, będziesz chciał przejść do okna A, wybierz bufor 8, a następnie do okna B, wybierz bufor 2.
Ten pomysł zainspirował mnie do napisania skryptu - i jest już w moim własnym zestawie narzędzi
Kod funkcji:
:call WinBufSwap()
Spowoduje to zamianę buforów w dwóch wstępnie wybranych oknach, pozostawiając kursor w oryginalnym oknie.
Wybór dwóch pożądanych okien, które mają zostać zamienione przed czasem, jest kluczowym szczegółem, ponieważ jest to konieczne, aby określić dla Vima, z którymi z nich pracować.
źródło
(
index.txt
sekcja 2.2, „Polecenia okna”)Jeśli bieżącym oknem jest A, następnym będzie B, więc potrzebujesz tylko
<C-w> x
Jeśli B to bieżące okno (a poniżej jest więcej okien), najpierw musisz przejść do A, a następnie wymienić:
<C-w> k <C-w> x
źródło
Inną alternatywą do zamiany okien lub zamiany buforów jest oznaczanie pozycji (przy użyciu wielkich liter ) w plikach i otwieranie tych znaków w wybranych oknach.
Na przykład, jeśli mam dwa pliki, file_A i file_B :
mA
mB
'A
'B
.Zaletą tej metody jest to, że z jakiegoś powodu dzielisz panel więcej niż raz i nie ma jasnej logiki zamiany, na przykład jeśli chcesz zamienić panele o godzinie 12 i 7, możesz ' po prostu obróć okna, ale możesz łatwo zamienić bufory.
źródło
Możesz zamienić bufory między dwoma oknami za pomocą następującej funkcji:
Teraz najczęściej zamiana buforów będzie technicznie zachowywać się jak zamiana okien. Ponieważ nie śledzisz ręcznie okien, monitorujesz, które okno przechowuje bufor. Tak więc powyższa funkcja pomoże ci w większości sytuacji.
źródło