【问题标题】:Emacs python-mode: Keyboard shortcuts for pdb step-by-step debuggingEmacs python-mode:用于 pdb 逐步调试的键盘快捷键
【发布时间】:2012-02-29 00:10:53
【问题描述】:

我想知道是否有办法关联:

  • n RET(下)
  • p RET(上一个)
  • c RET(继续)
  • C-x SPC RET (set/clear breakpoint)

使用功能键F1-F12 或其他键盘快捷键。这个想法是模拟其他 IDE 用于调试的键盘快捷键(例如 Visual Studio、MATLAB 等)。

python-mode? 是否已支持此功能是否有任何 Emacs 模式可用于补充 python-mode 以进行调试?

【问题讨论】:

    标签: python emacs pdb python-mode


    【解决方案1】:

    你总是可以在 Emacs 中定义自己的键绑定。首先键入 Ch m 以查看 pdb 缓冲区中模式的帮助(以 Mx pdb 开头)。

    接下来绑定任意键盘组合:

    (需要'gud) (定义键 gud-mode-map '[f11] 'gud-step) (定义键 gud-mode-map '[f10] 'gud-next) (定义键 gud-mode-map '[f5] 'gud-cont) (define-key gud-mode-map '[f12] 'gud-break)

    阅读 Emacs 手册,了解调试器的内置接口(类型 Ch i g (emacs) Debuggers RET)或在线:

    http://www.gnu.org/software/emacs/manual/html_node/emacs/Debuggers.html

    【讨论】:

    • 谢谢!你知道我如何为C-x SPC RET(即添加/删除断点)做到这一点吗?我在 GUD 文档中没有看到命令的名称
    • 您必须进入 gud 调试会话,然后当您键入 Ch k ANY-KEY-SEQUENSE 时,您将获得有关命令的帮助并可以将其名称复制到 Elisp 脚本...对于 Cx SPC RET,您必须留在 Python 文件缓冲区中...
    • 在加载 python-mode(最新版本,即 6.0.4)之后,我在你的答案中添加了这两行到我的 .emacs 文件,但是当我启动 Emacs 时出现错误:Symbol's value as variable is void: gud-mode-map
    • 要解决您的问题,您必须使用 (eval-after-load "FILE.el" BODY)(require "FILE")gud-mode-map 在加载 gud 库之前不会定义。
    • @intrpc 但最好的方法是输入 C-h k KBD-SEQUENCE。当您键入 KBD-SEQUENCE 时,您将获得 Emacs 调用的函数的帮助。在“帮助缓冲区”中,提供指向该函数定义的源文件的链接。在您的情况下,这似乎是 (require 'gud)。此 tequenches 始终有效,但对于 gud-next/gud-finish 没有,因为它们通过 defalias 定义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多