emacs pdb 调试 python, 可以代码语法高亮吗?

我尝试用 emacs pdb 调试 python, 但没有代码语法高亮,可以弄出来吗?

尝试下realgud

我按照文档安装:

M-x package-refresh
M-x package-install realgud

然后加载:

  M-x load-library realgud

然后运行:

M-x realgud:pdb

并输入python 文件名/usr/bin/emerge

窗口下半部分源码还是没有语法高亮:

用自带的 pdb 不是直接在源代码处就个高亮行的吗?

在第一行加一个

# ; -*- mode: python;-*-

要不在src窗口手动M-x python-mode

1 个赞

感觉你源代码上major-mode 是Fundamental? 不应该开启python-mode 么?你源码上本身就没有什么python 高亮支持吧?你可以简单扫一下我的python 配置,或许对你能有点用。我没有额外配置pdb or realgud or lsp-dap, 当我调用realgud的时候,会在源码文件上有提示。

如何才能在 src 窗口手动 M-x python-mode 呢? 我通过顶部菜单选择buffer, 让光标可以在 src 窗口(也就是上图名叫 emerge 的buffer, 显示 Fundamental 的)。但这时候我若 M-x 系统会说 command attempted to use minibuffer while in minibuffer

我若在调试窗口不断执行n,s, 进入另一个被调用的 .py 程序,代码会显示语法高亮,但是这个/usr/bin/emerge 是系统代码,我最好不要改它,那么如何才能让被调试代码进入 python-mode 显示呢?

我若是 emacs -nw /usr/bin/emerge 打开Python代码; 然后 M-x Python-mode 可以实现代码语法高亮。

但这种方式如何开始调试当前窗口代码,也就是 /usr/bin/emerge 呢?

更新:作为 workaround, 我把 /usr/bin/emerge 复制了一份,文件名改为 /usr/bin/emerge.py ,然后 pdb 调试的时候就语法高亮了.

没怎么在emacs里面使用pdb,如果是terminal环境下,需要pdb++。