在一天当中,我经常使用C-h f
或C-h v
(describe-function
和describe-variable
)查找有关函数和变量的文档。如果我没有获得所需的全部信息,通常会单击以下文件末尾的文件链接:
some-random-command is an interactive compiled Lisp function in `some-mode.el'.
并导航到源代码。这适用于已安装的软件包,但似乎不适用于内置软件包。例如,在命令的帮助页面顶部,describe-function
我得到的是:
describe-function is an interactive compiled Lisp function.
没有链接到源代码。有什么方法可以快速导航到内置包的源代码?
我知道我可以在中找到源代码,例如,/usr/share/emacs/24.5/lisp
并提出了多种方法来快速访问该目录,但是我很好奇是否有一种快速简便的方法可以导航到内置函数/变量定义中。源代码。谢谢!
M-x describe-function
: describe-function是'help-fns.el'中的交互式自动加载的已编译Lisp函数。 从那里,我可以单击(或按Enter键)help-fns.el
,然后将其传输到代码的适用部分。也许您有多个Emacs版本,而您当前使用的版本没有安装所有源代码?
emacs -Q
(没有初始化文件)启动Emacs时出现这种情况,或者可以用开头的配方进行复制emacs -Q
(例如说出要加载的库以及如何加载等),则请考虑提交错误。报告:M-x report-emacs-bug
。
.el
文件(视为可选)与.elc
文件(强制性)分开,因此您需要安装一个或多个其他软件包才能获得它们。如果您从OS软件包管理器获得了Emacs,则也许可以这样解释。
/usr/bin/emacs
和/usr/bin/emacsclient
,并且我将一个版本很好地打包在以.app结尾的OSX应用程序文件夹中-即,/Applications/Emacs.app
(在Emacs.app内是二进制文件,并且所有源代码文件)。
M-x find-function
;M-x find-variable
;M-x find-face
;M-x find-library
。我始终使用完整的Emacs安装程序,以便可以访问所有内容,并且在构建自己的Emacs之后,我复制了C源代码并设置了它的位置,以便可以找到C源代码定义。find-function-C-source-directory
复制变量后,请参见变量以设置C源代码的位置。