Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ipdb没有';不能在vim控制台中工作_Python_Vim_Pdb - Fatal编程技术网

Python ipdb没有';不能在vim控制台中工作

Python ipdb没有';不能在vim控制台中工作,python,vim,pdb,Python,Vim,Pdb,ipdb在shell中工作得很好,但是我想在设置ipdb.set_trace()之后,在vim下调试!python%, 下面的控制台告诉我,有什么想法吗?我猜您正在使用GUI Vim。GVim?麦克维姆?您在执行外部工具时得到的伪终端不是、从来没有过,也可能永远无法理解您看到的转义字符。这意味着没有颜色和ncurses风格的小部件 您最好在一个单独的终端中运行它,或者找到一种方法来禁用iPython中的颜色。如果您真的不想像@romainl建议的那样在一个单独的终端中运行vim,那么有一个插件提

ipdb在shell中工作得很好,但是我想在设置
ipdb.set_trace()
之后,在vim下调试!python%,
下面的控制台告诉我,有什么想法吗?

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


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

如果您真的不想像@romainl建议的那样在一个单独的终端中运行vim,那么有一个插件提供了一种在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"
nnoremap,p:“\conquetermvplit sh\n\:调用feedkeys('python'.shellescape(bufname(“.bufnr(%”))。\“\\n\”\n”

我已经为此创建了自己的解决方案,这可能对您很有价值,具体取决于您如何使用ipdb。其思想是,您可以将
no_colors=True
传递到
set_trace()
,这样交互调试器就不会产生任何颜色输出。我还为
launch\u ipdb\u on\u exception
启用了此参数

这意味着您可以执行以下操作:

import ipdb
ipdb.set_trace(no_colors=True)
在MacVim中,输出看起来很好

要使用它,您必须使用我的
ipdb
版本,也就是说,如果您想了解我所做的事情,请使用实际相关的commit


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

我建议windows用户使用。与ipdb(高亮显示、自动完成等)完美配合使用

,因此无法让它看起来漂亮。改用外部端子。@romainl不要说“不行”,你可以修补vim。即使它是封闭源代码的,您也可以对其进行修补。仅仅理解颜色是很简单的(尽管我是用VimL而不是用C来理解的)。@ZyX,你有一个有用的解决方案吗?如果是的话,我真的很想试试。我写了“不可能”,但我的意思是“没有内置方式,例如
:set colorshell
”。我真的很好奇你的解决方案。我记得两年前在谷歌上搜索过一点这个话题,但没有成功。@Romaill和我有一个插件,当输入
system()
output时,它将使用
:echo
,生成彩色输出,不仅保留了颜色,还保留了一些其他特殊功能(仅AFAIR
\r
)。但它处于阿尔法阶段,目前尚未开发。没错,是的,我刚刚用你的用户名在谷歌上搜索了一下,三分钟前找到了。你是对的,征服这个词可以作为一种变通方法,但它还远远不够完美。嗯,使用外壳也不是完美的。