Saya membuka beberapa file di Vim dengan, misalnya, berjalan
vim a/*.php
yang membuka 23 file.
Saya kemudian mengedit dan menjalankan yang berikut ini dua kali
:q
yang menutup semua buffer saya.
Bagaimana Anda bisa menutup hanya satu buffer di Vim?
vim -o a/*.php
(atau-O
menggunakan jendela vertikal) dan menghindari navigasi buffer - ini adalah metode yang bagus untuk hanya beberapa file, tetapi dengan 23 file mereka hanya akan memiliki beberapa baris / kolom setiap.Jawaban:
Kata hati-hati: "w dalam bw tidak berdiri untuk menulis tetapi untuk penghapusan!"
Lebih banyak dari manual:
: bd
Jika Anda tahu apa yang Anda lakukan, Anda juga dapat menggunakan: bw
: bw
sumber
:bw
jika "Anda tahu apa yang Anda lakukan", yang tidak saya lakukan, jadi saya kira saya akan menggunakannya:bd
.:bd
) juga menutup tab. Apa yang mungkin Anda inginkan adalah:bd n .. [m]
atau:n,mbd
untuk nomor tertentu atau kisaran angka untuk ditutup, yang dapat Anda lakukan tanpa melihat bufferw
kependekan dariwrite
perintah menurut Vim manual, ada juga tidak menyebutkan "penghapusan". Deskripsi perintah (help write
) dimulai dengan "Tulis seluruh buffer ke file saat ini."w
dibw
perintah berarti penghapusan dia tidak berbicara tentangw
perintah. Ia menaruh peringatan ini di sana sehingga orang tidak mengirabw
perintah itu berarti buffer write (yang tidak berarti buffer wipeout.)Jika ini tidak diperjelas oleh jawaban sebelumnya:
: bd akan menutup buffer saat ini. Jika Anda tidak ingin mengambil daftar buffer.
sumber
:bd
hanya menutup buffer sedangkan (apa pun artinya) sedangkan:bw
juga akan menghapus semua variabel dan BENAR-BENAR menghilangkannya darils
buffer.Periksa id buffer Anda menggunakan: buffer
Anda akan melihat daftar buffer di sana suka
jika Anda ingin menghapus b.php dari buffer
jika Anda ingin menghapus / menutup semua dari buffer
sumber
Daripada menelusuri ouput dari perintah: ls dan menghapus (unload, wipe ..) buffer dengan menentukan nomornya, saya menemukan bahwa menggunakan nama file seringkali lebih efektif.
Sebagai contoh, setelah saya membuka beberapa file .txt untuk menyegarkan kembali ingatan saya tentang beberapa hal yang bagus .. salin dan tempel beberapa baris teks untuk digunakan sebagai semacam template .. dll. Saya akan mengetik yang berikut ini:
Perhatikan bahwa string yang cocok tidak harus berada di awal nama file.
Di atas menampilkan daftar nama file yang cocok dengan 'txt' di bagian bawah layar dan menjaga: perintah bd Awalnya saya ketik tidak tersentuh, siap untuk diselesaikan.
Ini sebuah contoh:
Saya bisa mundur lebih dari bit 'txt' dan mengetikkan nama file yang ingin saya hapus, tetapi di mana ini menjadi sangat nyaman adalah saya tidak perlu: jika saya menekan tombol Tab untuk kedua kalinya, Vim secara otomatis menyelesaikan perintah saya dengan pertandingan pertama:
Jika saya ingin menyingkirkan buffer khusus ini, saya hanya perlu menekan Enter.
Dan jika buffer yang ingin saya hapus kebetulan adalah kecocokan kedua (ketiga .. dll), saya hanya perlu terus menekan tombol Tab untuk membuat siklus perintah saya: bd melalui daftar kecocokan.
Secara alami, metode ini juga dapat digunakan untuk beralih ke buffer yang diberikan melalui perintah seperti: b ..: sb .. etc.
Pendekatan ini sangat berguna ketika opsi Vim 'tersembunyi' diatur, karena daftar buffer dapat dengan cepat menjadi cukup besar, mencakup beberapa layar, dan membuatnya sulit untuk menemukan buffer tertentu yang saya cari.
Untuk memanfaatkan fitur ini sebaik mungkin, sebaiknya baca file bantuan Vim berikut ini dan sesuaikan perilaku penyelesaian baris perintah Tab yang sesuai sehingga paling sesuai dengan alur kerja Anda:
Perilaku yang saya jelaskan di atas dihasilkan dari pengaturan berikut, yang saya pilih demi konsistensi untuk meniru penyelesaian bash:
Berbeda dengan menggunakan nomor buffer, manfaat dari pendekatan ini adalah bahwa saya biasanya ingat setidaknya sebagian dari nama file yang diberikan membiarkan saya menargetkan buffer secara langsung daripada harus terlebih dahulu mencari nomornya melalui perintah: ls.
sumber
Menggunakan:
:ls
- untuk membuat daftar buffer:bd#n
- untuk menutup buffer di mana #n adalah nomor buffer (gunakanls
untuk mendapatkannya)Contoh:
untuk menghapus buffer 2:
sumber
Anda dapat memetakan berikutnya dan sebelumnya ke tombol fungsi juga, membuat bersepeda melalui buffer menjadi mudah
dari vimrc saya
sumber
Bagaimana tentang
Dengan begitu Anda dapat mengedit satu file di kiri Anda dan menavigasi seluruh dir di kanan Anda ... Hanya sebuah pemikiran, bukan solusi ...
sumber
[EDIT: ini adalah saran bodoh dari waktu saya tidak cukup mengenal Vim. Harap jangan gunakan tab alih-alih buffer; tab adalah "tata letak jendela" Vim]
Mungkin beralih menggunakan tab?
vim -p a/*.php
membuka file yang sama di tabgt
dangT
beralih tab bolak-balik:q
hanya menutup tab saat ini:qa
menutup semuanya dan keluar:tabo
menutup semuanya kecuali tab saat inisumber
wildmenu
? Ini mirip dengan lustyjuggler (meskipun lebih sederhana) tetapi ini sudah built in (yang bagus untuk saya, karena kebutuhan lustyjuggler+ruby
, dan vim default untuk kapal oneiric ubuntu-ruby
).vim-nox
paket dari Ubuntu memiliki dukungan Ruby.Mereka yang menggunakan penyangga atau plugin navigasi pohon, seperti Buffergator atau NERDTree, akan perlu untuk beralih pemisahan ini sebelum menghancurkan buffer saat ini - jika tidak Anda akan mengirim pemisahan Anda ke wonkyville
Saya menggunakan:
Di mana "
NERDTreeToggle
" dalam daftar itu sama dengan mengetik:NERDTreeToggle
. Anda dapat memodifikasi fungsi ini untuk diintegrasikan dengan konfigurasi Anda sendiri.sumber
:bdelete
atau:bwipeout
. Lihat jawaban saya .Tutup penyangga tanpa menutup jendela
Jika Anda ingin menutup penyangga tanpa merusak tata letak jendela Anda (tata letak saat ini berdasarkan pemisahan), Anda dapat menggunakan Plugin seperti bbye . Berdasarkan ini, Anda bisa menggunakannya
Atau hanya membuat pemetaan di Anda
.vimrc
untuk akses yang lebih mudahKeuntungan lebih dari vim: bdelete dan: bwipeout
Dari dokumentasi plugin :
: bdelete vs: bwipeout
Dari dokumentasi plugin :
sumber