Vim - ¿Acción de disparo \ script en guardar \ escribir?

14

Esto podría ser mejor para el superusuario, pero creo que, como herramienta del comercio, podría ser un mejor tema aquí. A menudo, cuando edito en vim, salgo, ejecuto un script que estoy probando y luego vuelvo a vim (sí, me doy cuenta de que puedo usar:! Comando para ejecutar cosas desde vim) Me preguntaba si hay un forma de conectar algo para ejecutar cuando se guarda el archivo (: w)?

Joshua Enfield
fuente

Respuestas:

4

Puede resultarle incroninteresante si está utilizando Linux.

Pausado hasta nuevo aviso.
fuente
19

Ver :he :autocmdy:he BufWritePost

La línea se vería así:

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

Si la <afile>cosa no funciona, úsala %:p.

marciano
fuente
1

Obtuve la parte "volver a vim", pero no estoy seguro de cómo presionar el comando ": w" en sí (lo cual sería muy útil, ya que eso es bastante reflexivo para mí)

w | silent execute "! myscript" | redraw!

Creo que también puede ser mejor para el superusuario.

gatoatigrado
fuente
1

Esta es una autopromoción descarada, pero escribí un complemento de Vim que activará ciertos scripts de shell que se ejecutarán después de autocmdeventos específicos de Vim . Por ejemplo, una secuencia de comandos llamada .bufwritepost.vimhook.shse ejecutará (sincrónicamente) cada vez que BufWritePostse active el comando. Luego, podría incluir fácilmente cualquier lógica arbitraria que desee para hacer cosas dentro de ese script. El complemento asume convenciones de nomenclatura específicas de estos scripts y también admite scripts "enganchados" que se activan solo en archivos que coinciden con ciertos nombres o que tienen ciertas extensiones. Y, por supuesto, puede elegir cualquier autocmdevento que desee, aunque he encontrado que se BufWritePostajusta a la mayoría de mis casos de uso.

Detalles completos: https://github.com/ahw/vim-hooks

Andrés
fuente