如何在emacs中打印所有已定义的变量?

Tal*_*Kit 8 emacs

Mx <TAB>打印所有已定义的函数.

要检查变量是否已定义或未评估以下表达式,(boundp'变量名称)如果变量名定义为nill,则Cx Ce将打印t.

如何在emacs中打印所有已定义的变量.

san*_*inc 8

目前还不清楚你想要用完整的符号列表做什么,因为M-x显示函数名称的方式有点特殊.

假设您想以编程方式获取所有已定义符号的列表,请按以下步骤auto-complete.el操作:

(loop for x being the symbols
    if (boundp x)
    collect (symbol-name x))
Run Code Online (Sandbox Code Playgroud)

请注意,您也可以输入M-x describe-var RET,然后按TAB以获取所有符号的已排序完成列表.


ack*_*ack 6

推断(大量!)所要求的内容,这是一种获取所有缓冲区局部变量及其值的漂亮打印列表的方法。这对于找出为什么某种模式没有按照预期的方式运行非常方便。

要获取此列表,请执行以下操作:

M-x pp-eval-expression RET (buffer-local-variables) RET
Run Code Online (Sandbox Code Playgroud)

该列表中的相关部分几乎可以逐字添加到一个.dir-locals.el文件中,以便与多个文件一起使用。


phi*_*ils 5

(apropos-variable "." t)想向您展示在该时间点定义的所有变量。

编辑:我想错了,这似乎。

有趣的是,这实际上使我看到的结果比的自动完成要少得多describe-var

谁能阐明这一点?

例如,winner-mode启用它们之间的区别:

  • C-uM-x apropos-variable RET winner- RET
  • C-hv winner- TAB

编辑2:啊...看来apropos可能会忽略任何缺少文档字符串的符号。

如果可能,我建议重新分配接受的答案。