Powiedzmy, że mam skrypt python z błędem środowiska wykonawczego:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
co daje:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Chcę, aby Vim przeskoczył do problematycznej linii tego pliku (w tym przypadku linii 3). Wiem, że Vim może to zrobić, ponieważ działa dobrze do wychwytywania błędów w czasie kompilacji w C przy gcc
użyciu :make
i quickfix
okna.
Jasne, mogę wypełnić okno szybkiej poprawki Vima za pomocą, :set makeprg=python3\ %
a następnie :make
, ale nie przeskakuje on do numeru linii, na który wskazuje ślad. Kiedy patrzę w :copen
to, po prostu podświetla pierwszą linię śladu i nie mogę przeskoczyć do odpowiedniego numeru linii.
( jessie
W przypadku Debiana korzystam z Vima 7.4 .)
Moje pytania to:
Czy mogę skonfigurować Vima, aby wiedział, jak uzyskać odpowiedni numer linii ze śledzenia w Pythonie?
Czy mogę zmodyfikować interpreter Pythona, aby wyrzucił format błędu, który Vim już wie, jak analizować i uzyskać odpowiedni numer linii?
errorformat
odpowiednio go dostosuj i napisz wtyczkę kompilatora dla Vima (patrz:help :compiler
i:help write-compiler-plugin
). Prawdopodobnie nie warte wysiłku, jeśli nie wiesz dokładnie, co robisz i nie jesteś wystarczająco entuzjastyczny, aby wykopać wszystko z dokumentów.