Saya memiliki banyak file teks dalam direktori dan saya tahu saya harus mengedit masing-masing indiviudaly.
Saya mulai dengan garis commend
vim *.txt
yang membuka file sebagai buffer terpisah di vim dan membuat saya mencari di yang pertama. Saya mengeditnya - lalu saya gunakan ': w' untuk menyimpannya dan ': bd' untuk menutup buffer dan pindah ke yang berikutnya.
Ini ': w: bd' untuk menyimpan dan menutup buffer terasa lama bagi saya, dan saya curiga ada cara yang lebih vim untuk melakukannya - apa rekomendasi cara untuk menyimpan dan menutup buffer yang sedang Anda kerjakan dalam sekali gerakan?
:next
buffer dan menulis / tutup semuanya setelah tugas Anda selesai:wqa
. Ini mengandaikan bahwa Anda miliki:set hidden
di~/.vimrc
.Jawaban:
Saat meneruskan file ke Vim pada command-line, mereka tidak hanya dibuka di buffer, tetapi juga mengisi daftar argumen . Oleh karena itu, Anda dapat menggunakan perintah seperti
:next
dan:first
untuk menavigasi melalui mereka (dan:argdo
untuk pemrosesan batch, yang bisa menjadi trik bagus). Perintah yang saya sarankan untuk pertanyaan Anda adalah:wnext
(bentuk pendek:wn
), yang:write
merupakan buffer saat ini dan kemudian pergi ke yang:next
.Anda tidak perlu
:bdelete
buffer secara eksplisit , terutama tidak ketika Anda meluncurkan Vim dari command-line dengan satu set file dan kemudian berhenti ketika selesai. (Satu-satunya pengecualian yang dapat saya pikirkan adalah membongkar file besar untuk menghemat memori sistem, atau menggunakan kembali contoh GVIM tunggal untuk banyak pengeditan yang berbeda.)Namun, jika Anda benar-benar menginginkan ini, cukup tentukan perintah khusus, mis
sumber
:w|bd
.:next
lebih masuk akal dalam beberapa kasus.Meskipun saya setuju bahwa Anda tidak harus menghapus buffer terbuka yang saat ini tidak Anda gunakan, saya suka menghapusnya karena saya memiliki garis tab vim-airline yang aktif, yang menampilkan semua buffer terbuka sepanjang waktu di bagian atas jendela. Saya memiliki yang berikut ini di
.vimrc
:qq
menyimpan dan menutup buffer saat ini, tetapi juga mengacaukan fungsi "record macro" dari vim (yang saya tidak keberatan).sumber
ZZ
datang ke pikiran, tetapi akhirnya menabung dan berhenti sepenuhnya dari Vim, bukan hanya menghapus buffer. Huruf kecilzz
mungkin merupakan pemetaan alternatif yang menarik, bagi siapa saja yang menemukan makro lebih berharga daripada memusatkan tampilan pada garis kursor saat ini.Q
, setelah menyadari betapa berharganya rekaman dalam Vim.