在elisp中打印emacs的符号

时间:2012-03-02 10:47:09

标签: emacs elisp

如何使用elisp打印emacs中的所有符号。

可以使用symbolp测试lisp对象是否为符号 功能。但是如何收集所有符号。

是否可以访问emacs的符号表?

2 个答案:

答案 0 :(得分:6)

这是一种方法:

(require 'cl)

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

loop是一个Common Lisp宏,它也被移植到Emacs Lisp。它是cl包(标准Emacs发行版的一部分)的一部分,您必须require才能使用它。

另一个需要考虑的选择可能是:

(apropos "." t)

apropos调用将花费更多时间来完成,但您将获得有关符号的更多信息。

答案 1 :(得分:4)

为了完整起见,以下是您在不使用cl包的情况下列出所有符号的方法:

转到新创建的缓冲区,然后键入 M - : (mapatoms (lambda (s) (insert (symbol-name s) "\n"))) RET 。这将在缓冲区中插入所有现有符号的名称,每行一个。