Digamos que tengo un script de Python con un error de tiempo de ejecución:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
lo que da:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Quiero que Vim salte a la línea problemática de ese archivo (línea 3 en este caso). Sé que Vim puede hacer esto porque funciona bien para detectar errores en tiempo de compilación en C con el gcc
uso :make
y la quickfix
ventana.
Claro, puedo llenar la ventana de corrección rápida de Vim con :set makeprg=python3\ %
y luego :make
, pero no salta al número de línea donde apunta el rastreo. Cuando lo miro :copen
, solo resalta la primera línea de la traza, y no puedo saltar al número de línea relevante.
(Estoy usando Vim 7.4 en Debian jessie
en caso de que eso importe).
Mis preguntas son:
¿Puedo configurar Vim para que sepa cómo obtener el número de línea relevante de un rastreo de Python?
¿Puedo modificar el intérprete de Python para escupir un formato de error que Vim ya sabe cómo analizar y obtener el número de línea relevante?
errorformat
consecuencia y escriba un complemento compilador para Vim (consulte:help :compiler
y:help write-compiler-plugin
). Probablemente no valga la pena el esfuerzo si no sabe exactamente lo que está haciendo y no está lo suficientemente entusiasmado como para sacar todo de los documentos.