Vim - Acionar ação \ script ao salvar \ gravar?

13

Isso pode ser melhor para o superusuário, mas eu acho que, como uma ferramenta comercial, pode ser um tópico melhor para aqui. Muitas vezes, quando edito no vim que saio, executo algum script que estou testando e depois volto ao vim (sim, percebo que posso usar:! Comando para executar coisas do vim). Eu estava pensando se há um maneira de conectar algo a ser executado quando o arquivo é salvo (: w)?

Joshua Enfield
fonte

Respostas:

4

Você pode achar incroninteressante se estiver usando Linux.

Pausado até novo aviso.
fonte
19

Veja :he :autocmde:he BufWritePost

A linha ficaria assim:

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

Se a <afile>coisa não funcionar, use %:p.

marciano
fonte
1

Eu recebi a parte "voltando ao vim", mas não tenho certeza de como pressionar o comando ": w" (o que seria muito útil, pois isso é bastante reflexivo para mim)

w | silent execute "! myscript" | redraw!

Eu acho que pode ser melhor para superusuário também.

gatoatigrado
fonte
1

Isso é flagrante autopromoção, mas escrevi um plug-in do Vim que acionará certos scripts de shell para serem executados após autocmdeventos específicos do Vim . Por exemplo, um script chamado .bufwritepost.vimhook.shseria executado (de forma síncrona) toda vez que o BufWritePostcomando fosse acionado. Você pode incluir facilmente qualquer lógica arbitrária que desejar para fazer coisas dentro desse script. O plug-in assume convenções de nomenclatura específicas desses scripts e também suporta scripts "hook", que são acionados apenas em arquivos que correspondem a determinados nomes ou que possuem determinadas extensões. E, é claro, você pode escolher qualquer autocmdevento que desejar, embora eu tenha achado a BufWritePostmaioria dos meus casos de uso.

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

Andrew
fonte