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' gcc
aide de :make
et la quickfix
fenê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 :copen
dedans, 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 jessie
au 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é?
errorformat
conséquence et écrire un plugin de compilation pour Vim (voir:help :compiler
et: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.