Angenommen, ich habe ein Python-Skript mit einem Laufzeitfehler:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
was gibt:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Ich möchte, dass Vim zur problematischen Zeile dieser Datei (in diesem Fall Zeile 3) springt. Ich weiß, dass Vim dies kann, weil es gut funktioniert, um Fehler beim Kompilieren in C mit gcc
using :make
und dem quickfix
Fenster abzufangen.
Klar, ich kann das Quickfix-Fenster von Vim mit :set makeprg=python3\ %
und füllen :make
, aber es springt nicht zu der Zeilennummer, auf die das Traceback verweist. Wenn ich hineinschaue :copen
, hebt es nur die erste Zeile der Kurve hervor und ich kann nicht zur entsprechenden Zeilennummer springen.
(Ich benutze Vim 7.4 unter Debian, jessie
falls es darauf ankommt.)
Meine Fragen sind:
Kann ich Vim so konfigurieren, dass es weiß, wie die relevante Zeilennummer von einem Python-Traceback stammt?
Kann ich den Python-Interpreter so ändern, dass er ein Fehlerformat ausgibt, von dem Vim bereits weiß, wie man die relevante Zeilennummer analysiert und abruft?
errorformat
und ein Compiler-Plugin für Vim schreiben (siehe:help :compiler
und:help write-compiler-plugin
). Die Mühe lohnt sich wahrscheinlich nicht, wenn Sie nicht genau wissen , was Sie tun, und nicht enthusiastisch genug sind, um alles aus den Dokumenten herauszuholen.