Saat saya bekerja dengan VIM, saya selalu melihat beberapa jendela. Terkadang saya ingin memiliki cara yang mudah, untuk menukar jendela itu di beberapa tempat. Apakah ada Plugin, Makro, dll untuk mempermudah? BTW, saya menggunakan MiniBufExplorer.
123
Jawaban:
Ada beberapa perintah berguna bawaan yang memberi Anda sejumlah kontrol, tetapi tidak komprehensif. Yang utama adalah:
Ctrl- W, r(yaitu tahan CTRL, tekan W, lepaskan CTRL, tekan r) - yang memutar jendela (Jendela pertama menjadi yang kedua, yang kedua menjadi yang ketiga, dll.)
Ctrl- W, x- tukar jendela saat ini dengan yang berikutnya
Ctrl- W, Shift- H- pindahkan jendela ini ke paling kiri
Ctrl- W, Shift- K- pindahkan jendela ini ke atas
(dan juga untuk Ctrl- W, Shift- Jdan Ctrl- W, Shift- L). Lihat:
untuk informasi lebih lanjut.
sumber
Saya menulis dan telah menggunakan potongan kode berikut di vimrc saya untuk menyalin-tempel jendela Vim saya.
Ini mendefinisikan misalnya pintasan berikut:
<c-w>y
: "Yanks the window", yaitu menyimpan jumlah buffer di jendela saat ini dalam variabel global.<c-w>pp
: "Menempatkan jendela di Tempat jendela saat ini", yaitu membaca nomor buffer yang disimpan sebelumnya dan membuka buffer itu di jendela saat ini. Ini juga menyimpan jumlah buffer yang dulu ada di jendela saat ini.Jika dengan "menukar jendela itu di tempat", yang Anda maksud adalah "membuka buffer di jendela A di jendela B, dan sebaliknya, tanpa mengubah posisi jendela", Anda dapat menggunakan urutan keyboard berikut untuk menukar jendela:
<c-w>y
(menarik nomor buffer)<c-w>pp
(tempel buffer)<c-w>pp
(tempelkan buffer lagi)Ini hanya bekerja di Vim> = 7.0.
sumber
Saya mengajukan pertanyaan serupa sekitar waktu yang sama: Saya menginginkan cara untuk menukar jendela secara khusus tanpa mengubah tata letak yang rumit secara sembarangan. Saya akhirnya membuat plugin vim dari salah satu solusi yang disarankan. Ini disebut WindowSwap.vim ; menginstalnya dengan pengelola plugin vim pilihan Anda dan memutarnya.
Dengan WindowSwap.vim, Anda cukup
<Leader>yw
untuk menarik jendela.<Leader>pw
untuk menempelkan jendela itu, menukarnya dengan posisi yang pertama.Kombinasi tombol tentu saja dapat dikonfigurasi dengan preferensi Anda.
sumber
Sebagai
<c-w>r
atau<c-w>x
memiliki batasan bahwa Anda tidak dapat memutar atau menukar jendela Ketika pemisahan jendela vertikal dan horizontal dicampur. Dan<c-w>H
dapat membuat tata letak jendela berubah melebihi harapan Anda terutama bila Anda memiliki banyak jendela.Jadi Anda dapat melakukan beberapa pekerjaan untuk memenuhi kebutuhan khusus Anda akan pengalihan jendela / buffer. Berikut adalah contoh untuk mengganti jendela saat ini dengan jendela kiri atas (biasanya saya membuatnya dimaksimalkan secara vertikal):
sumber
Menurut pendapat saya, http://vimcasts.org/episodes/working-with-windows/ memiliki jawaban yang tepat untuk pertanyaan ini. Secara singkat:
ctrl-w w
siklus antara jendela yang terbukactrl-w h
fokuskan jendela ke kirictrl-w j
fokuskan jendela ke bawahctrl-w k
fokuskan jendela ke atasctrl-w l
fokuskan jendela ke kananctrl-w r
putar semua jendelactrl-w x
tukar jendela saat ini dengan tetangganyactrl-w H
pindahkan jendela saat ini ke paling kirictrl-w J
pindahkan jendela saat ini ke bawahctrl-w K
pindahkan jendela saat ini ke atasctrl-w L
pindahkan jendela saat ini ke paling kanansumber