ipdb在shell中工作正常,但我想在我设置ipdb.set_trace()
之后调试vim,然后!python %
,
下面的控制台给我this messy prompt,任何想法?
答案 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完美配合(突出显示,自动完成,......)