Vim - Attiva azione \ script su save \ write?


14

Questo potrebbe essere migliore per i super utenti, ma immagino che come strumento di scambio potrebbe essere un argomento migliore per questo. Trovo spesso quando modifico in vim che esco, eseguo alcuni script che sto testando e poi torno in vim (sì, mi rendo conto che posso usare:! Comando per eseguire le cose da vim) Mi stavo solo chiedendo se c'è un modo di agganciare qualcosa da eseguire quando il file viene salvato (: w)?

Risposte:



19

Vedi :he :autocmde:he BufWritePost

La linea sarebbe simile a questa:

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

Se la <afile>cosa non funziona usa %:p.


1

Ho ottenuto la parte "tornare a vim", ma non sono sicuro di come premere il comando ": w" stesso (che sarebbe molto utile, dal momento che è abbastanza riflessivo per me)

w | silent execute "! myscript" | redraw!

Penso che potrebbe essere migliore anche per il superutente.


1

Questa è palese autopromozione, ma ho scritto un plugin Vim che attiverà alcuni script di shell da eseguire dopo specifici autocmdeventi Vim . Ad esempio, uno script chiamato .bufwritepost.vimhook.shverrebbe eseguito (in modo sincrono) ogni volta che il BufWritePostcomando viene attivato. Potresti quindi includere facilmente qualsiasi logica arbitraria desideri per fare cose all'interno di quello script. Il plug-in presuppone specifiche convenzioni di denominazione di questi script e supporta anche script "hook" che si attivano solo su file corrispondenti a determinati nomi o con determinate estensioni. E, naturalmente, sei libero di scegliere qualsiasi autocmdevento tu desideri, anche se ho trovato che si BufWritePostadatta alla maggior parte dei miei casi d'uso.

Dettagli completi: https://github.com/ahw/vim-hooks

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.