Katakanlah saya memiliki fungsi, namanya StripWhitespace
.
Saya dapat menjalankannya pada satu file dengan membuka file dan menjalankannya :StripWhitespace
.
Bagaimana saya bisa menjalankan fungsi itu secara otomatis terhadap folder file, dan menyimpan hasilnya saat saya melanjutkan?
macro
multiple-files
kodok persegi
sumber
sumber
Jawaban:
Anda bisa menggunakan
-c
argumen untuk menjalankan perintah saat startup, darivim(1)
:Contoh:
Untuk berhenti setelah itu, tambahkan
| :wqa
:sumber
Jika Anda sudah berada di Vim, Anda dapat menggunakan perintah
:argdo
atau:bufdo
untuk mengeksekusi perintah pada setiap item dalam daftar argumen atau daftar buffer, masing-masing.mis. untuk menjalankan
:
perintah pada setiap file dalam daftar argumen:Atau untuk memanggil fungsi dari setiap file dalam daftar buffer:
Atau untuk menjalankan makro
q
pada setiap file dalam daftar argumen:Anda kemudian dapat menyimpan semua buffer yang diubah dengan
:wall
, atau menyimpan semua dan keluar dari Vim:wqall
.Jika Anda ingin menulis file sambil berjalan, Anda dapat menambahkan panggilan
:update
, seperti:Ada berbagai cara Anda bisa mendapatkan file ke Vim di tempat pertama, termasuk:
vim *
(ini menambahkan semua file ke daftar argumen),:args
perintah (yang mendukung wildcard dan backtick expressions) untuk mengisi daftar argumen, atau:argadd
perintah untuk menambahkan file ke dalamnya,:e
,:Ex
atau plugin file pembukaan.sumber
'hidden'
harus diatur; (2): update
perintah ini sedikit perbaikan:w
karena hanya menulis jika ada perubahan, jadi:bufdo update
atau:argdo update
akan menulis semua buffer atau argumen yang dimodifikasi.update
. Saya mempertimbangkan untuk menyebutkanhidden
ketika saya menulis jawabannya, tetapi memutuskan untuk tidak melakukannya karena saya tidak ingin terlalu rumit. Namun pada refleksi, itu harus ada di sana. Saya akan memperbarui jawaban untuk memasukkan kedua saran saat ini.:wall
, yang juga memiliki keuntungan tidak bersepeda melalui penyangga dan menjauhkan Anda dari tempat Anda mulai. Saya kira:argdo update
masih cerita yang berbeda - mungkin Anda tidak ingin menulis ke buffer yang tidak ada dalam daftar argumen Anda.