Saya biasanya membuka beberapa jendela dan membiarkan beberapa buffer tetap terbuka. Karena MO saya dalam penjelajahan buffer adalah menggunakan pintasan cepat untuk :bn
dan :bp
, saya ingin menutup buffer yang tidak dibutuhkan agar mengganggu selancar buffer saya.
Tetapi rasa sakitnya adalah, mengeluarkan :bd
dan :bw
menghasilkan menutup jendela juga, kalau-kalau ada beberapa yang terbuka. Bagaimana cara menutup (menghapus) buffer dan membiarkan windows tetap utuh?
Solusi yang terinspirasi oleh jawaban @ peth
:command! BW :bn|:bd#
Sederhana saja. Tidak berfungsi dengan baik hanya dengan satu buffer terbuka (saya mendapatkan perilaku berbeda tergantung pada cara saya membuka file) tetapi itu bukan masalah besar. :)
Saya sedikit mengacaukan ini dan akhirnya muncul dengan:
Inilah versi salin / tempel untuk pemetaan kunci:
Atau perintah untuk .vimrc Anda (panggilan dengan: Bd):
Saya sudah mengujinya sedikit dan bekerja secara konsisten dalam berbagai kondisi. Ketika digunakan pada buffer terakhir itu akan meninggalkan Anda dengan buffer kosong baru.
sumber
Jendela adalah viewport ke dalam buffer. (Lihat
:help window
.) Anda tidak dapat memiliki jendela tanpa buffer terkait. Anda dapat menggunakan perintah seperti:enew
untuk mengganti konten jendela saat ini dengan buffer kosong.sumber
yang bufkill.vim Plugin bekerja dengan baik. Saya suka menggunakannya dengan vim-command-w untuk fungsionalitas dan fungsi tambahan (seperti itu akan menutup split jika buffer terakhir atau close vim jika buffer / split terakhir).
sumber
Inilah solusi lain:
Mengetik Ctrl + W maka o akan diam-diam membuat jendela baru dan menutup jendela lama. Kursor ditinggalkan di jendela baru. Ada sejumlah efek positif:
sumber
Saya pikir masalahnya adalah kebanyakan orang mengharapkan vim buffer dan window menjadi sesuatu yang bukan.
Orang-orang cenderung menganggap jendela vim sebagai proses mandiri yang memiliki daftar buffer sendiri, tetapi sayangnya tidak. Jendela vim hanya merupakan viewport dari buffer-nya.
Karenanya banyak masalah muncul, seperti masalah Anda, atau masalah yang berbeda jendela berbagi daftar buffer yang sama sehingga Anda tidak dapat mengedit Buffer 1 di Window A, dan biarkan Window B mengabaikan Buffer 1 di daftar buffernya.
Solusi saya adalah membuka dua contoh vim, sehingga Anda dapat memiliki jenis jendela vim yang Anda inginkan. Ini bekerja paling baik pada ubin WMs.
sumber
Biasanya saya hanya membuka menu sambil di buffer apa saja. Ini akan membuka menu di panel kiri dan kursor akan aktif di sana. Jadi saya hanya beralih kembali ke buffer aktif dan menghapus buffer.
Setelah itu saya bisa membuka file lain dari menu.
Langkah saya adalah:
sumber