2014-10-09 67 views
1

使用emacs 23.x,pdbtrack集成(让您指向当前代码行的箭头)与常规M-x shell RET配合使用。例如,在运行带有Makefile的自动化测试时,将其放入调试器中非常有用。如何在emacs 24.x shell中启用pdbtrack python调试?

在emacs 24.x中,这不再有效。我注意到,如果我运行一个M-x python-shell-send-file的Python脚本,那么pdbtrack集成的作品。但通过标准的emacs shell(M-x shell RET)运行python时,它不起作用。

回答

4

我用这个片段:

(require 'python) 

(defun my-shell-mode-hook() 
    (add-hook 'comint-output-filter-functions 'python-pdbtrack-comint-output-filter-function t)) 

(add-hook 'shell-mode-hook 'my-shell-mode-hook) 

防止pdbtrack东西从尝试在其他缓冲区工作(如gdb缓冲区)。

+1

起初我以为这段代码没有任何作用,但后来才意识到,也许我应该把'my-mode-hook'改成'python-mode-hook'。真正?我新使用钩子。 – reteptilian 2015-01-14 23:54:06

+0

对不起!我盲目地通过并将我的实际用户名改为“我的”,并且做了太多事。它是你想要的shell-mode-hook,而不是my-mode-hook或者python-mode-hook。 – sfink 2015-01-20 01:53:08

3

您可以通过添加以下钩到您.emacs文件解决此问题:

(add-hook 'comint-output-filter-functions 'python-pdbtrack-comint-output-filter-function) 
+0

不错,适合我,谢谢! – reteptilian 2014-10-13 01:06:04