Eu tenho essa linha no meu .vimrc
, o que significa "quando eu salvar um arquivo .rb, execute-o ruby -c
" (verificação de erro do interpretador de ruby).
autocmd BufWritePost *.rb !ruby -c <afile>
Quando salvo esse arquivo, sempre vejo a saída na parte inferior da tela, então me acostumo e começo a ignorá-lo. O que eu quero é ver apenas a saída se houver erros.
Percebo que, quando há erros, depois de dizer o que são, na parte inferior, diz "shell retornou 1."
Como posso modificar essa linha para mostrar apenas uma mensagem se o shell retornar 1? Existe uma maneira de suprimir condicionalmente a saída de um comando shell executado no vim?
syntax_checker
arquivo. Por exemplo, para verificação do Javascript, você precisa ter o JSLint (jsl
utilitário de linha de comando) instalado: superuser.com/questions/247012/…Quando o Vim vê o status de saída do comando, o comando já enviou sua saída, se houver, para o terminal, para que você não possa suprimir condicionalmente a saída do comando testando o status de saída.
A página do manual ruby (1) diz que
-c
faz com que o ruby envie a mensagem "Sintaxe OK" para a saída padrão se não houver erros. Parece que, ao testar, os erros de sintaxe são relatados como erro padrão. Portanto, você pode suprimir a mensagem "Syntax OK" redirecionando a saída padrão para / dev / null e suprimir o eco do comando usando:silent
, desta forma.fonte
"bar.rb" 1L, 10C writtenbar.rb:1: syntax error
, e a tela está fora de sincronia com o cursor.