Vim - Kaydet \ yazarken eylem \ komut dosyası tetiklenir?


14

Bu süper kullanıcı için daha iyi olabilir, ancak ticaretin bir aracı olarak, bunun için daha iyi bir konu olabileceğini düşünüyorum. Vim'de düzenlerken, çıktığımı, test ettiğim bazı komut dosyalarını çalıştırdığımı ve daha sonra vim'e geri döndüğümü sık sık görüyorum (evet, vim'den bir şeyler çalıştırmak için kullanabileceğimi anlıyorum:! Komutu) kaydedildiğinde çalıştırılacak bir şey bağlamanın yolu (: w)?

Yanıtlar:



19

Bakın :he :autocmdve:he BufWritePost

Çizgi şöyle görünecektir:

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

Eğer <afile>bir şey kullanımını çalışmaz %:p.


1

"Vim'e geri dönme" bölümünü aldım, ama ": w" komutunun kendisine nasıl çarpılacağından emin değilim (bu benim için oldukça refleksif çünkü)

w | silent execute "! myscript" | redraw!

Süper kullanıcı için de daha iyi olabileceğini düşünüyorum.


1

Bu açık bir öz tanıtım, ancak belirli Vim autocmdolaylarından sonra çalıştırılacak belirli kabuk komut dosyalarını tetikleyecek bir Vim eklentisi yazdım . Örneğin, komut .bufwritepost.vimhook.shher başlatıldığında adlı bir komut dosyası (eşzamanlı olarak) çalıştırılır BufWritePost. Daha sonra, o komut dosyasının içine bir şeyler yapmak için istediğiniz keyfi mantığı kolayca ekleyebilirsiniz. Eklenti, bu komut dosyalarının belirli adlandırma kurallarını varsayar ve yalnızca belirli adlarla eşleşen veya belirli uzantılara sahip dosyalarda tetiklenen "kanca" komut dosyalarını destekler. Ve tabii ki, kullanım durumlarımın çoğuna uygun autocmdbulduğum halde, istediğiniz herhangi bir etkinliği seçmekte özgürsünüz BufWritePost.

Tüm ayrıntılar: https://github.com/ahw/vim-hooks

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.