A resposta para sua pergunta direta é exatamente como o @EvergreenTree postou. No entanto, sinto que você está perdendo algumas das ferramentas integradas do Vim para criar / compilar / projetar projetos. Mais notavelmente :makee a lista de correções rápidas.
O que o uso :makenos leva?
O uso :makepermite coletar seus erros em uma lista conhecida como lista de correções rápidas. Usando o quickfix, você pode navegar entre os erros em seus arquivos, para ir direto para o local onde o compilador diz que está o erro (útil, certo?).
:faço
A execução :makeexecutará o programa make 'makeprg',. Em seguida, analise a saída 'errorformat'e coloque cada entrada na lista de correções rápidas.
Normalmente, o 'makeprg'padrão é o makecomando que executa a Makefile. No entanto, você pode alterar o seu 'makeprg'através do :compilercomando ou configurá-lo diretamente.
Você também pode passar argumentos extras para :make. por exemplo:make clean
Nota: a execução :makegeralmente mostra a saída do comando na parte inferior da tela com um prompt pedindo para pressionar enter. Basta pressionar Enter, pois toda a saída estará disponível na lista de correções rápidas. Você pode suprimir isso via :silent, por exemplo :silent make.
Um comando personalizado comum para uma make silenciosa é:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
lista de correções rápidas
Depois de executar :makesua lista de correções rápidas, a saída do compilador será mantida.
Use o seguinte comando para navegar na lista de correções rápidas.
:copen abrir a janela do quickfix
:cclose fechar a janela do quickfix
:cnext/ :cprevpara ir para o item seguinte / anterior
:ccimprimir na parte inferior o erro atual ou :cc 3mostrar um erro específico neste exemplo 3
Pessoalmente, uso o plug-in intacto de Tim Pope para navegar na lista de correções rápidas.
Que tal correr :makeautomaticamente e silenciosamente?
Você pode fazer isso :autocmdexatamente como você.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Como um bônus, eu adicionei ao abrir a janela do quickfix via :cwindowse houver algum erro presente.
Nota: deve ser mais específico com esse padrão de arquivo no BufWritePostautocmd para que os arquivos não relacionados não sejam construídos.
Ainda mais ?!
Isso está usando apenas alguns comandos internos do Vim, além de alguns autocmd's para convencer. É claro que existem plugins e ferramentas que podem ajudá-lo
- Dispatch.vim pode ser usado para executar
:maketarefas de forma assíncrona.
- A sintaxe do plug-in sintático verifica o arquivo depois
:write.
- O Ale.vim (Asynchronous Lint Engine) é um plug-in para fornecer dicas no NeoVim e no Vim 8 enquanto você edita seus arquivos de texto.
- O Unimpaired.vim facilita o gerenciamento da lista de correções rápidas.
- Makefiles antigos simples. A menos que você
./script.shseja muito complicado, você pode querer usar o make. Ele pode ser escalado para realizar mais tarefas posteriormente e é uma ferramenta de construção comum.
- Você pode usar o Vim Awesome para procurar mais plugins que possam ajudar.
Conclusão
Pessoalmente, :makeintegro e o quickfix ao meu próprio fluxo de trabalho. Acredito que capturar a saída do seu processo de compilação e capturar os erros valem o investimento. Como um bônus adicional, você possivelmente se sentirá mais confortável com a lista de correções rápidas e poderá usá-la para outros aplicativos, como :grep.
Para obter mais ajuda, consulte:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc