Disons que j'ai un script python avec une erreur d'exécution:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
qui donne:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Je veux que Vim passe à la ligne problématique de ce fichier (ligne 3 dans ce cas). Je sais que Vim peut le faire car cela fonctionne très bien pour détecter les erreurs au moment de la compilation en C avec l' gccaide de :makeet la quickfixfenêtre.
Bien sûr, je peux remplir la fenêtre de correction rapide de Vim avec :set makeprg=python3\ %puis :make, mais il ne saute pas au numéro de ligne vers lequel pointe le traçage. Quand je regarde :copendedans, il met juste en évidence la première ligne de la trace, et je ne peux pas passer au numéro de ligne correspondant.
(J'utilise Vim 7.4 sur Debian jessieau cas où cela compte.)
Mes questions sont:
Puis-je configurer Vim pour qu'il sache comment obtenir le numéro de ligne approprié à partir d'un suivi Python?
Puis-je modifier l'interpréteur Python pour cracher un format d'erreur que Vim sait déjà comment analyser et obtenir le numéro de ligne approprié?


errorformatconséquence et écrire un plugin de compilation pour Vim (voir:help :compileret:help write-compiler-plugin). Cela ne vaut probablement pas la peine si vous ne savez pas exactement ce que vous faites et si vous n'êtes pas assez enthousiaste pour tout extraire des documents.