繁体   English   中英

ipdb在vim控制台中不起作用

[英]ipdb doesn't work in vim console

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

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

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

如果您真的不想像在@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"

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

这意味着您可以:

import ipdb
ipdb.set_trace(no_colors=True)

在MacVim中,输出看起来还不错。

要使用此,你将不得不使用我的版本的ipdb ,这是在这里 ,实际的相关承诺,如果你想看到我所做的是在这里

事实证明, ipdb只是访问ipython.core.debuggerPdb在那里定义了实际的调试器。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM