Katakan berikut ini adalah struktur jendela saya saat ini:
+ ----- + ---------------------------- | | | A | | | + ----- + | | | B |
Urutan A dan B tidak cukup alami. Akan lebih baik jika B ada di atas.
Namun, jika saya pergi <C-w>K
, B akan menjadi yang paling atas dari semua jendela, yang bukan yang saya inginkan. Bagaimana saya bisa meletakkan B di atas A, tetapi tidak di atas jendela lain yang sudah di atas A?
Dan jika dua jendela terbelah secara vertikal, bagaimana saya bisa mengubahnya menjadi membelah secara horizontal?
split
vim-windows
Jason Hu
sumber
sumber
Jawaban:
Untuk menukar dua bagian dari jendela terpisah cukup lakukan:
<C-w> <C-r>
sumber
:h CTRL-W_CTRL-R
:The second window becomes the first one, the third one becomes the second one, etc.
Jadi jika Anda memiliki 3 split, kursor di bagian bawah dan tekan<c-w><c-r>
jendela ke-3 akan berada di atas 2 yang lain yang bukan yang diminta OP:How can I put B above A, but not above any other window that is already above A?
Untuk bertukar
window
posisi, efeknya sama dengan menukar buffer yang ditampilkan dua jendela itu.mis. Jika jendela A memiliki buffer 2 dan jendela B memiliki buffer 8, Anda akan ingin pergi ke Window A, pilih buffer 8, lalu ke Window B, pilih buffer 2.
Ide ini menginspirasi saya untuk menulis skrip - dan itu sudah ada di kotak alat saya sendiri
Kode fungsi:
:call WinBufSwap()
Ini menukar buffer di dua jendela yang dipilih sebelumnya, meninggalkan kursor di jendela asli.
Memilih dua jendela yang diinginkan untuk ditukar sebelumnya adalah detail utama, karena itu diperlukan untuk menentukan untuk Vim mana yang akan digunakan.
sumber
(
index.txt
bagian 2.2, "Perintah jendela")Jika A adalah jendela saat ini, maka yang berikutnya adalah B, jadi Anda hanya perlu
<C-w> x
Jika B adalah jendela saat ini (dan ada lebih banyak jendela di bawah) maka Anda pertama-tama harus pergi ke A, kemudian tukar:
<C-w> k <C-w> x
sumber
Alternatif lain untuk menukar jendela atau menukar buffer, adalah menandai posisi (menggunakan tanda huruf besar ) dalam file Anda dan membuka tanda itu di jendela yang Anda pilih.
Misalnya jika saya memiliki dua file, file_A dan file_B :
mA
mB
'A
'B
.Keuntungan dari metode ini adalah jika karena alasan tertentu Anda membagi panel Anda lebih dari sekali dan tidak ada logika yang jelas untuk bertukar sekitar, seperti jika Anda ingin menukar panel pada jam 12 dan 7, Anda bisa ' t hanya memutar jendela tetapi Anda dapat dengan mudah menukar buffer.
sumber
Anda dapat menukar buffer antara dua jendela dengan fungsi berikut:
Sekarang, paling sering, menukar buffer secara teknis akan bertindak seperti menukar jendela. Karena Anda tidak secara manual melacak windows, Anda melacak window mana yang menahan buffer. Jadi, fungsi di atas akan membantu Anda untuk sebagian besar situasi.
sumber