gpt4 book ai didi

python - Emacs:设置/重置 python 调试断点

转载 作者:太空狗 更新时间:2023-10-30 02:14:20 25 4
gpt4 key购买 nike

我使用 python 调试器 pdb。我使用 emacs 进行 python 编程。我使用 python-mode.el。我的想法是使 emacs 直观。所以我需要 python 程序 (.py) 的以下帮助

  1. 每当我按下“F9”键时,emacs 应该输入“import pdb; pdb.set_trace();”当前行中的语句并将当前行移动到下一行。句子要在同一行。智能缩进可能会有很大帮助。

  2. 无论“import pdb; pdb.set_trace();”语句出现在 python 代码中,emacs 应该显示左侧指示符并突出显示该行。

  3. 当我在当前行按下“Alt-F9”键时,emacs 发现“import pdb; pdb.set_trace();”然后声明,emacs 应该删除“import pdb; pdb.set_trace();”行并将当前行向上移动。

  4. 每当我按下“F8”键时,emacs 就会跳转到“import pdb; pdb.set_trace();”在同一个缓冲区中。

我正在尝试学习 elisp 并很快 catch lisp 以自己定制 emacs。我将感谢您的回答。

对于我和其他认为此解决方案非常有用的人来说,答案应该足够好。

最佳答案

做 1)

(defun add-py-debug ()  
"add debug code and move line down"
(interactive)
(move-beginning-of-line 1)
(insert "import pdb; pdb.set_trace();\n"))

(local-set-key (kbd "<f9>") 'add-py-debug)

要做 2) 你可能需要更改 python 模式的语法突出显示,或者编写你自己的次要模式。您必须查看 font-lock 才能获得更多信息。对不起。

要做 3) 虽然我已经将其设置为 C-c F9 而不是 Alt-F9

(defun remove-py-debug ()  
"remove py debug code, if found"
(interactive)
(let ((x (line-number-at-pos))
(cur (point)))
(search-forward-regexp "^[ ]*import pdb; pdb.set_trace();")
(if (= x (line-number-at-pos))
(let ()
(move-beginning-of-line 1)
(kill-line 1)
(move-beginning-of-line 1))
(goto-char cur))))

(local-set-key (kbd "C c <f9>") 'remove-py-debug)

然后做 4)

(local-set-key (kbd "<f3>") '(lambda ()  
(interactive)
(search-forward-regexp "^[ ]*import pdb; pdb.set_trace();")
(move-beginning-of-line 1)))

请注意,这不是世界上最好的 elisp 代码,但我试图让您清楚地知道发生了什么,而不是让它完全地道。如果您想使用 elisp 做更多事情,GNU Elsip 书是一个很好的起点。

HTH

关于python - Emacs:设置/重置 python 调试断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2332164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com