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

时间:2011-06-27 13:08:46

标签: emacs

M-x< TAB>打印所有已定义的功能。

要检查变量是否已定义或未评估以下表达式, (boundp'变量名)如果变量名定义为nill,则C-x C-e将打印t。

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

3 个答案:

答案 0 :(得分:8)

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

假设您希望以编程方式获取所有已定义符号的列表,auto-complete.el执行此操作的方式如下:

(loop for x being the symbols
    if (boundp x)
    collect (symbol-name x))

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

答案 1 :(得分:5)

我认为(apropos-variable "." t)会显示在该时间点定义的所有变量。

编辑:我猜错了,看起来似乎。

有趣的是,这实际上显示的结果明显少于describe-var的自动完成次数。

有人能说清楚吗?

e.g。启用winner-mode后,这些差异:

  • C-u M-x apropos-variable RET winner- RET
  • C-h v winner- TAB

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

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

答案 2 :(得分:3)

外推(严重!)所要求的内容,这里有一种方法可以获得所有缓冲区局部变量的漂亮打印列表及其值。这非常方便地找出为什么例如某种模式不像人们期望的那样行事。

要获得此商家信息,请执行以下操作:

M-x pp-eval-expression RET (buffer-local-variables) RET

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