ipdb はシェルで正常に動作しますが、設定した後、vim でデバッグしたいのですが、下ipdb.set_trace()
の!python %
コンソールにこの厄介なプロンプトが表示されます。何か考えはありますか?
4 に答える
GUI Vimを使用していると思います。Gヴィム?マクヴィム?外部ツールを実行したときに得られる疑似端末は、表示されるエスケープ文字を理解することはできません。つまり、色も ncurses スタイルのウィジェットもありません。
別のターミナルで実行するか、iPython で色を無効にする方法を見つけたほうがよいでしょう。
私はこれに対する独自の回避策を作成しました。これは、ipdbの使用方法によっては役立つ場合があります。no_colors=True
アイデアは、に渡すことができset_trace()
、その方法でインタラクティブデバッガーがカラー出力を生成しないということです。また、この引数を有効にしましたlaunch_ipdb_on_exception
。
これは、次のことができることを意味します。
import ipdb
ipdb.set_trace(no_colors=True)
また、MacVimでは出力は正常に見えます。
これを使用するには、ここにある私のバージョンを使用する必要がipdb
あります。私が行ったことを確認したい場合は、実際に関連するコミットがここにあります。
これipdb
は単に便利なアクセス方法でありipython.core.debugger
、Pdb
実際のデバッガーはそこで定義されています。
@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"