2011-06-27 46 views
8

M-x < TAB>打印所有已定义的功能。如何在emacs中打印所有定义的变量?

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

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

+0

为什么你想这样做? –

+1

“M-x打印所有已定义的功能”是什么意思?'M-x'提示您输入交互式命令的名称,然后执行它。 (如果你的意思是你可以按TAB键来查看自动完成列表......那么,这只是交互功能,而不是“所有已定义的功能”。) – phils

+0

我发布为Mx ,它没有显示,我编辑它到Mx < TAB \>,它的工作原理 –

回答

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

那么,你可能真正想要的是'Mx customize-group RET org RET'。 – sanityinc

+0

谢谢,它绝对有助于我理解组织模式示例配置。 –

4

我假设(apropos-variable "." t)会显示当时定义的所有变量。

编辑:我错误地推测,它似乎。

有趣的是,这实际上显示我的结果比describe-var的自动完成更少。

任何人都可以阐明这一点吗?

例如这些之间的差异,当winner-mode已启用:

  • C-ùM-Xapropos-variableRETwinner-RET
  • C-Hvwinner-TAB

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

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

2

外推(严重!)要求什么,这里有一种方法来获得所有缓冲区局部变量与他们的值的漂亮打印alist。这对于找出为什么例如模式不按照预期的方式来说非常方便。

要获得此房源的,执行:从这个名单

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

相关部分几乎可以一字不差地添加到.dir-locals.el文件有多个文件使用。

相关问题