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)?

Jawaban:



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.


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.


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.