2

ipdb はシェルで正常に動作しますが、設定した後、vim でデバッグしたいのですが、下ipdb.set_trace()!python %コンソールにこの厄介なプロンプトが表示されます。何か考えはありますか?

4

4 に答える 4

4

GUI Vimを使用していると思います。Gヴィム?マクヴィム?外部ツールを実行したときに得られる疑似端末は、表示されるエスケープ文字を理解することはできません。つまり、色も ncurses スタイルのウィジェットもありません。

別のターミナルで実行するか、iPython で色を無効にする方法を見つけたほうがよいでしょう。

于 2012-09-14T08:18:00.293 に答える
1

私はこれに対する独自の回避策を作成しました。これは、ipdbの使用方法によっては役立つ場合があります。no_colors=Trueアイデアは、に渡すことができset_trace()、その方法でインタラクティブデバッガーがカラー出力を生成しないということです。また、この引数を有効にしましたlaunch_ipdb_on_exception

これは、次のことができることを意味します。

import ipdb
ipdb.set_trace(no_colors=True)

また、MacVimでは出力は正常に見えます。

これを使用するには、ここにある私のバージョンを使用する必要ipdbあります。私が行ったことを確認したい場合は、実際に関連するコミットがここにあります。

これipdbは単に便利なアクセス方法でありipython.core.debuggerPdb実際のデバッガーはそこで定義されています。

于 2013-01-05T18:32:35.697 に答える
1

@romainlが示唆するように、vimにパッチを当てて別の端末で実行したくない場合は、vimバッファーに色付きの疑似端末を配置する方法を提供するConqueプラグインがあります。あなたは走らなければならない

ConqueTerm(|[V]Split|Tab) sh

そしてその中で走る

python path/to/file.py

(いいえ%)しかし。マッピングに絞り込むことができます。

nnoremap <expr> ,p ":\<C-u>ConqueTermVSplit sh\n\<C-o>:call feedkeys('python '.shellescape(bufname(".bufnr("%").")).\"\\n\")\n"
于 2012-09-14T13:17:56.370 に答える