Elisp 如何查看函数的返回值的定义?

新手刚刚入门elisp。我发现一个很困难的问题就是如何查看一个函数的返回值的定义呢?

就比如 save-excursion 这个函数,是 C source code. 文件在哪里,如何查看返回值的定义呢?

我一般使用 C-h f 来查看函数文档,但是文档中并没有说明函数的返回值是什么……萌新求破

C-x C-e

@tumashu 谢谢! 只是这种有点 duck type 的感觉啊。不知有别的方法吗?

elisp写的还可以看代码,但是 C source的不知代码怎么打开呢?我想打开 C source code 的时候 弹出helm mini buffer 让我输入source dir。这个不知道该输入什么了……

如果是自己编译的 Emacs ,安装完以后,只要不删除源代码,就能和查看 Lisp 函数源代码一样查看 C 语言部分的代码。

的确。不过 Emacs Lisp 手册里有解释 C-h S (info-lookup-symbol):

 The value returned by ‘save-excursion’ is the result of the last
 form in BODY, or ‘nil’ if no body forms were given.

另外自己试下也非常容易

(save-excursion 123)
     => 123

输入 Emacs 的 C 代码所在目录,即 Emacs 源码1根目录下的 src/ 文件夹。你应该也可以手动设置 source-directory。安装 Emacs 后 C 代码用不上,一般也没不会安装。


1 可以用 Git 下载最新的源码 http://git.savannah.gnu.org/cgit/emacs.git,也可以直接下载 Tarball http://ftpmirror.gnu.org/emacs/

2 个赞