2

ipdb 在 shell 中工作正常,但我想在 vim 下调试,在我设置之后ipdb.set_trace(),然后!python %,下面的控制台给了我这个凌乱的提示,你知道吗?

4

4 回答 4

4

我猜你正在使用 GUI Vim。虚拟机?麦克维姆?您在执行外部工具时获得的伪终端不是,从来没有并且可能永远无法理解您看到的转义字符。这意味着没有颜色ncurses 样式的小部件

您最好在单独的终端中运行它,或者找到一种在 iPython 中禁用颜色的方法。

于 2012-09-14T08:18:00.293 回答
1

如果您真的不想像@romainl 建议的那样修补 vim 以及在单独的终端中运行,那么有一个Conque插件,它提供了一种在 vim 缓冲区中具有彩色伪终端的方法。你必须跑

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 回答
1

对于 Windows 用户,我建议使用ConEmu。与 ipdb 完美配合(突出显示,自动完成,...)

于 2013-10-01T08:42:05.043 回答
1

我为此创建了自己的解决方法,这可能对您很有价值,具体取决于您使用 ipdb 的方式。这个想法是你可以传入no_colors=Trueset_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 回答