Vim - Aksi pemicu \ skrip di save \ write?

13

Ini mungkin lebih baik untuk pengguna super, tapi saya pikir sebagai alat perdagangan itu mungkin topik yang lebih baik untuk di sini. Saya sering menemukan ketika mengedit di vim bahwa saya keluar, menjalankan beberapa skrip yang saya uji, dan kemudian kembali ke vim (ya saya sadar saya dapat menggunakan:! Perintah untuk menjalankan sesuatu dari vim) Saya hanya ingin tahu apakah ada cara untuk menghubungkan sesuatu untuk dijalankan ketika file disimpan (: w)?

Joshua Enfield
sumber

Jawaban:

4

Anda mungkin incrontertarik jika Anda menggunakan Linux.

Dijeda sampai pemberitahuan lebih lanjut.
sumber
19

Lihat :he :autocmddan:he BufWritePost

Barisnya akan terlihat seperti ini:

:autocmd BufWritePost /path/to/file/or/pattern !command <afile>

Jika <afile>hal itu tidak berfungsi, gunakan %:p.

Orang Mars
sumber
1

Saya mendapat bagian "kembali ke vim", tetapi saya tidak yakin bagaimana cara menekan perintah ": w" itu sendiri (yang akan sangat berguna, karena itu cukup refleksif bagi saya)

w | silent execute "! myscript" | redraw!

Saya pikir mungkin lebih baik untuk pengguna super juga.

gatoatigrado
sumber
1

Ini promosi diri yang terang-terangan, tetapi saya menulis plugin Vim yang akan memicu skrip shell tertentu untuk dijalankan setelah autocmdperistiwa Vim tertentu . Sebagai contoh, sebuah skrip bernama .bufwritepost.vimhook.shakan dijalankan (sinkron) setiap kali BufWritePostperintah dipecat. Anda kemudian dapat dengan mudah memasukkan logika arbitrer apa pun yang Anda inginkan untuk melakukan hal-hal di dalam skrip itu. Plugin mengasumsikan konvensi penamaan khusus dari skrip ini dan juga mendukung skrip "hook" yang memicu hanya pada file yang cocok dengan nama tertentu atau memiliki ekstensi tertentu. Dan tentu saja, Anda bebas memilih autocmdacara apa pun yang Anda inginkan, meskipun saya telah menemukan BufWritePostsebagian besar kasus penggunaan saya.

Detail lengkap: https://github.com/ahw/vim-hooks

Andrew
sumber