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 :make
e a lista de correções rápidas.
O que o uso :make
nos leva?
O uso :make
permite 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 :make
executará 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 make
comando que executa a Makefile
. No entanto, você pode alterar o seu 'makeprg'
através do :compiler
comando ou configurá-lo diretamente.
Você também pode passar argumentos extras para :make
. por exemplo:make clean
Nota: a execução :make
geralmente 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 :make
sua 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
/ :cprev
para ir para o item seguinte / anterior
:cc
imprimir na parte inferior o erro atual ou :cc 3
mostrar 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 :make
automaticamente e silenciosamente?
Você pode fazer isso :autocmd
exatamente 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 :cwindow
se houver algum erro presente.
Nota: deve ser mais específico com esse padrão de arquivo no BufWritePost
autocmd 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
:make
tarefas 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.sh
seja 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, :make
integro 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