Digamos que eu tenha um script python com um erro de tempo de execução:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
que dá:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Eu quero que o Vim pule para a linha problemática desse arquivo (linha 3 neste caso). Eu sei que o Vim pode fazer isso porque funciona muito bem para detectar erros em tempo de compilação em C com o gcc
uso :make
e a quickfix
janela.
Claro, eu posso preencher a janela de correção rápida do Vim com :set makeprg=python3\ %
e :make
, em seguida , mas não pula para o número da linha para onde o traceback aponta. Quando olho para :copen
ele, apenas destaca a primeira linha do rastreamento e não posso pular para o número da linha relevante.
(Estou usando o Vim 7.4 no Debian jessie
, caso isso importe.)
Minhas perguntas são:
Posso configurar o Vim para que ele saiba como obter o número da linha relevante de um rastreamento de Python?
Posso modificar o interpretador Python para cuspir um formato de erro que o Vim já sabe analisar e obter o número da linha relevante?
errorformat
acordo e escrever um plug-in de compilação para o Vim (ver:help :compiler
e:help write-compiler-plugin
). Provavelmente não vale o esforço se você não sabe exatamente o que está fazendo e não está entusiasmado o suficiente para descobrir tudo sobre os documentos.