Скажем, у меня есть сценарий 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). Вероятно, не стоит затраченных усилий, если вы точно не знаете , что делаете, и у вас недостаточно энтузиазма, чтобы выкопать все из документов.