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 gccużyciu :makei quickfixokna.
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 :copento, po prostu podświetla pierwszą linię śladu i nie mogę przeskoczyć do odpowiedniego numeru linii.
( jessieW 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?


errorformatodpowiednio go dostosuj i napisz wtyczkę kompilatora dla Vima (patrz:help :compileri: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.