如何使用elisp打印emacs中的所有符号。
可以使用symbolp测试lisp对象是否为符号 功能。但是如何收集所有符号。
是否可以访问emacs的符号表?
答案 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 。这将在缓冲区中插入所有现有符号的名称,每行一个。