Bagaimana saya bisa menulis semua buffer bernama?
Saya ingin perintah yang menyimpan setiap buffer yang memiliki nama file. :h :wallberikan ini:
*:wa* *:wall*
:wa[ll] Write all changed buffers. Buffers without a file
name cause an error message. Buffers which are
readonly are not written.
:wa[ll]! Write all changed buffers, even the ones that are
readonly. Buffers without a file name are not
written and cause an error message.
Jadi pada dasarnya saya menginginkan perintah yang akan mengatakan "Tulis semua buffer yang diubah. Buffer tanpa nama file akan dilewati / diabaikan." Saya tidak peduli apa yang terjadi pada buffer hanya-baca.
Apakah sudah ada perintah yang melakukan ini, atau apakah saya perlu menulis fungsi untuk melakukan ini?
Jawaban
Kedengarannya seperti tempat yang ideal untuk memanfaatkan perintah :silent!.
:silentdapat disisipkan sebelum perintah lain dan efeknya adalah untuk mencegah tampilan pesan "normal" (yaitu non-error). Pesan kesalahan masih ditampilkan dan dapat menyebabkan eksekusi terhenti.
:silent!, dengan menambahkan !, melangkah lebih jauh dan juga menyembunyikan pesan yang disebabkan oleh kesalahan dan mencegah kesalahan tersebut membatalkan eksekusi.
Jadi Anda harus dapat menggunakan yang terakhir bersama dengan :wa!demikian ...
:silent! wa!
... untuk mendapatkan hasil yang Anda inginkan:
- Tulis buffer yang diubah
- Abaikan buffer tanpa nama file (error disembunyikan)
- Menulis buffer hanya-baca (yang tidak Anda sukai)