19.2.9 表达式求值

在 Edebug 内部,你可以像 Edebug 未运行时一样求值表达式。 Edebug 会尽量对表达式的求值和打印保持“不可见”。 会产生副作用的表达式将按预期执行,除非修改的是 Edebug 显式保存和恢复的数据。 关于该过程的细节,See 外部环境

e exp RET

在 Edebug 外部的上下文中求值表达式 expedebug-eval-expression)。 也就是说,Edebug 会尽量减少对求值过程的干扰。 结果会显示在回显区;如果该命令带前缀参数,则会弹出新缓冲区并对结果进行美观打印。

默认情况下,该命令在求值期间会抑制调试器,避免被求值表达式中的错误在现有错误之上再叠加一层。 将用户选项 debug-allow-recursive-debug 设置为非nil 可以取消这一行为。

M-: exp RET

在 Edebug 自身的上下文中求值表达式 expeval-expression)。

C-x C-e

在 Edebug 外部的上下文中求值光标前的表达式(edebug-eval-last-sexp)。 使用前缀参数 0(C-u 0 C-x C-e)时,不截断长内容(如字符串和列表)。 其他前缀参数会将值在独立缓冲区中美观打印。

Edebug 支持对包含词法绑定符号的表达式求值,这些符号由 cl.el 中的以下结构创建: lexical-letmacroletsymbol-macrolet

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike