実行時エラーのある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行目)にジャンプしてほしい。私はそれがでCにコンパイル時にエラーをキャッチするためにうまく動作しますので、Vimはこれを行うことができます知っているgcc
使用:make
してquickfix
ウィンドウ。
もちろん、Vimのquickfixウィンドウにと:set makeprg=python3\ %
を入力できます:make
が、トレースバックが指す行番号にジャンプしません。これを見る:copen
と、トレースの最初の行が強調表示されているだけで、関連する行番号にジャンプできません。
(jessie
重要な場合に備えて、Debian でVim 7.4を使用しています。)
私の質問は:
Pythonトレースバックから関連する行番号を取得する方法を認識できるようにVimを構成できますか?
Pythonインタープリターを変更して、Vimが関連する行番号を解析および取得する方法を既に知っているエラー形式を吐き出すことができますか?
errorformat
応じて調整し、Vimのコンパイラプラグインを記述できます(:help :compiler
およびを参照:help write-compiler-plugin
)。何をしているのか正確にわからず、ドキュメントからすべてを掘り下げるほど熱心でない場合は、おそらく努力する価値はありません。