Скажіть, у мене є сценарій python з помилкою виконання:
$ cat example.py
#! /usr/bin/env python3
a = 1/0
що дає:
$ python3 example.py
Traceback (most recent call last):
File "example.py", line 3, in <module>
a = 1/0
ZeroDivisionError: division by zero
Я хочу, щоб Vim перейшов до проблемної лінії цього файлу (рядок 3 у цьому випадку). Я знаю, що Vim може це зробити, тому що він працює чудово для вловлювання помилок під час компіляції в C за gcc
допомогою :make
та quickfix
вікна.
Звичайно, я можу заповнити вікно швидкого виправлення Vim :set makeprg=python3\ %
і потім :make
, але воно не переходить до номера рядка, на який вказує зворотний зворот. Коли я дивлюся в :copen
нього, просто виділяється перший рядок сліду, і я не можу перейти до відповідного номера рядка.
(Я використовую Vim 7.4 на Debian jessie
у випадку, якщо це має значення.)
Мої запитання:
Чи можу я налаштувати Vim так, щоб він знав, як отримати відповідний номер рядка з прослідковування Python?
Чи можу я змінити інтерпретатор Python, щоб виплюнути формат помилок, який Vim вже знає, як проаналізувати та отримати відповідний номер рядка?
errorformat
відповідність і написати плагін компілятора для Vim (див.:help :compiler
Та:help write-compiler-plugin
). Напевно, не варто докладати зусиль, якщо ти не знаєш точно, що ти робиш, і не вистачаєш ентузіазму, щоб викопати все з документів.