Seringkali, saya akan memuat beberapa informasi ke dalam buffer sementara, dan kemudian menutupnya :clo!
. Tapi ini menyembunyikan buffer daripada membongkar seluruhnya, meskipun saya telah nohidden
mengaturnya. Saya menemukan ini melelahkan karena saya mendapatkan konfirmasi tambahan ketika saya berhenti Vim, tentang konten saya sudah (saya pikir saya) dibuang.
Saya bisa menggunakan :q!
saja, tapi itu kebiasaan buruk untuk masuk karena akan keluar sepenuhnya dari Vim jika hanya ada satu buffer yang tersisa, yang juga menjengkelkan. Lebih buruk lagi, jika saya salah ketik :qa!
, saya bisa kehilangan banyak pekerjaan.
Apakah ada jalan tengah? Saya sangat suka beberapa perintah yang membunuh buffer saat ini tetapi tidak keluar Vim. Saya tidak menentang untuk menulisnya di Vimscript, tetapi saya lebih suka menghindarinya jika perintah sudah ada.
sumber
:ls
lebih mudah (imo) untuk diingat dan melakukan hal yang sama seperti:buffers
Anda dapat menghapus buffer sepenuhnya menggunakan perintah: bwipeout (atau: bw). Ini sepenuhnya menghapus buffer dari memori, termasuk tanda, pengaturan opsi, dll. Yang telah Anda tambahkan padanya. Demikian pula,: bdelete (atau: bd) menghapus buffer, tetapi membiarkannya dalam memori dan menyimpan tanda dan pengaturan opsi.
Sesuai komentar oleh Tom Hale, dokumentasi Vim merekomendasikan penggunaan: bd over: bw kecuali Anda tahu apa yang Anda lakukan. Saya cenderung menggunakan: bw karena seperti ide untuk sepenuhnya menghapus buffer dari memori, dan saya tidak menggunakan banyak tanda, pengaturan opsi buffer-spesifik, dll, sampai membutuhkan mereka untuk tetap setelah menutup buffer saya.
Seperti perintah: quit (: q), Vim akan memberikan kesalahan jika buffer telah berubah. Untuk mengatasinya, Anda dapat menambahkan tanda seru setelah perintah untuk menekan prompt. Opsi lain, alih-alih menambahkan tanda seru ke semuanya, adalah menambahkan "atur konfirmasi" ke vimrc Anda. Dengan set ini, vim akan meminta Anda untuk menyimpan perubahan file saat tutup.
: bufdo adalah perintah yang berguna yang melakukan perintah lain pada semua buffer aktif. Menggabungkan perintah: bufdo dengan perintah: bw /: bd memungkinkan Anda menghapus semua buffer aktif sekaligus. Anda masih dapat menggunakan tanda seru untuk menekan kesalahan, tetapi apakah Anda menempatkannya setelah: bufdo, after: bw, atau setelah keduanya menyebabkan hasil yang berbeda untuk masing-masing:
Berikut adalah beberapa perintah buffer berguna lainnya:
Ada banyak lagi penanganan buffer yang berada di luar cakupan pertanyaan ini. Lihat:
http://vim.wikia.com/wiki/Vim_buffer_FAQ http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers
sumber
:bd
lebih disukai dalam banyak kasus:bw
dilakukan di luar "Semua yang terkait dengan buffer hilang. Semua tanda dalam buffer ini menjadi tidak valid, pengaturan opsi hilang, dll.". Tampaknya masuk akal bagi saya jika saya ingin 'menutup' buffer seperti itu jika saya keluar sepenuhnya dari Vim.