Supponiamo che io abbia uno script Python con un errore di runtime:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
che dà:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Voglio che Vim passi alla riga problematica di quel file (riga 3 in questo caso). So che Vim può farlo perché funziona benissimo per rilevare errori in fase di compilazione in C con gcc
using :make
e la quickfix
finestra.
Certo, posso popolare la finestra di quickfix di Vim con :set makeprg=python3\ %
e quindi :make
, ma non passa al numero di riga a cui punta il traceback. Quando lo guardo :copen
, evidenzia solo la prima riga della traccia e non posso passare al numero di riga pertinente.
(Sto usando Vim 7.4 su Debian jessie
nel caso in cui sia importante.)
Le mie domande sono:
Posso configurare Vim in modo che sappia come ottenere il numero di riga rilevante da un traceback di Python?
Posso modificare l'interprete Python per emettere un formato di errore che Vim già sa come analizzare e ottenere il numero di riga pertinente?
errorformat
conseguenza e scrivere un plug-in del compilatore per Vim (vedere:help :compiler
e:help write-compiler-plugin
). Probabilmente non vale la pena se non sai esattamente cosa stai facendo e non sei abbastanza entusiasta di estrarre tutto dai documenti.