emacs - 在 Emacs Lisp 中,如何找到符号定义的位置

标签 emacs elisp

当我这样做时 C-h fC-h v , 帮助告诉我符号是在哪个文件中定义的,或者将从哪里自动加载。如何以编程方式找到相同的信息?

最佳答案

一些挖掘表明

(find-lisp-object-file-name object type)

应该做的伎俩。举个例子:
(find-lisp-object-file-name 'goto-line 'function)
;; => "/usr/local/Cellar/emacs/24.3/share/emacs/24.3/lisp/simple.el"

编辑:我是如何发现这些信息的:

首先我做了 C-h k C-h f弄清楚是什么 C-h f一定会。结果是describe-function ,所以让我们做 C-h f describe-function看到它的来源。我注意到它本质上是一个围绕 describe-function-1 的交互式包装器。 ,所以我跳到了源头。里面有很多东西,但相关的一行是:
(file-name (find-lisp-object-file-name function def))

揭秘 find-lisp-object-file-name是用于在内部完成这项工作的函数。

关于emacs - 在 Emacs Lisp 中,如何找到符号定义的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166834/

相关文章:

haskell - 在 Emacs Lisp 中使用 foldr 实现 map

emacs - 如何在苹果酒中正确使用 lein try?

emacs 和 dictionary.el

emacs - 在Emacs中,如何在当前文件的功能之间跳转?

emacs - 让 emacs 在 Mac 上按单词移动光标

emacs - Emacs 中普通缓冲区和空间前缀缓冲区的区别?

emacs - 如何在 emacs 组织模式中启用并行 PDF 导出

Emacs 插入居中的注释 block

emacs - 以编程方式选择区域

Emacs org-mode : how to determine, 当前节点被打卡