ipdb在vim控制台中不起作用

时间:2012-09-14 07:56:37

标签: python vim pdb

ipdb在shell中工作正常,但我想在我设置ipdb.set_trace()之后调试vim,然后!python %, 下面的控制台给我this messy prompt,任何想法?

4 个答案:

答案 0 :(得分:4)

我猜你正在使用GUI Vim。 gVim的?的MacVim?执行外部工具时获得的伪终端不是,从来没有,也可能永远无法理解你看到的转义字符。这意味着没有颜色没有ncurses风格的小部件

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

答案 1 :(得分:1)

如果你真的不想修补vim以及在@romainl建议的单独终端中运行那么有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"

答案 2 :(得分:1)

我为此创建了自己的解决方法,根据您使用ipdb的方式,这可能对您有价值。我们的想法是你可以将no_colors=True传递给set_trace(),这样交互式调试器就不会产生任何颜色输出。我还为launch_ipdb_on_exception启用了此参数。

这意味着您可以:

import ipdb
ipdb.set_trace(no_colors=True)

MacVim中的输出看起来很好。

要使用此功能,您必须使用我的ipdb版本here,实际相关提交,如果您想看到我做的是here

事实证明,ipdb只是访问ipython.core.debugger的一种便捷方式,Pdb在那里定义了实际的调试器。

答案 3 :(得分:1)

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