Executar comandos do shell no arquivo atual com base na extensão do arquivo

8

Atualmente, estou trabalhando muito com Ruby e JavaScript. Eu sei que posso executar meus arquivos Ruby :! ruby %e também meu JavaScript :! node %, e que posso vincular qualquer um deles, por exemplo ,b,. Como posso configurar as coisas para que eu possa vincular um único comando que verifique a extensão do arquivo que estou editando e execute o comando apropriado?

Tom
fonte

Respostas:

10

Você poderia usar :makepara isso; você pode definir makeprg(abreviação de make program) para qualquer comando.

Alguns exemplos:

au FileType ruby set makeprg=ruby\ %
au FileType javascript set makeprg=node\ %
au FileType python set makeprg=python\ %
au FileType coffeescript set makeprg=coffee\ -c\ %

noremap ,b :make<CR>

:makefoi originalmente planejado para executar a makeferramenta para criar o projeto, mas linguagens como Ruby ou Javascript não precisam ser compiladas; definir como algo que executará o código faz sentido.

Martin Tournoij
fonte