使用粘贴时如何跳转到emacs中的函数定义?

zca*_*ate 6 emacs common-lisp

我已经使用https://github.com/thephoeron/slime-pack安装了slime,并希望更多地探索common-lisp.

如何在emacs中访问特定功能的源?

例如,如果我有一个功能:

(type-of 1)
Run Code Online (Sandbox Code Playgroud)

我想访问的来源type-of,如何做到这一点?

Pue*_*Pop 10

Meta .

它调用函数: slime-edit-definition

要跳转到lisp实现中的函数,您可能需要做一些额外的事情来指向源代码.在SBCL中,你必须到sb-ext:set-sbcl-source-location正确的位置.sbclrc:

(sb-ext:set-sbcl-source-location "/path/to/sbcl/")
Run Code Online (Sandbox Code Playgroud)

您可以编辑.sbclrcC-xC-f ~/.sbclrc在Emacs.

  • 如果您自己构建SBCL,则会自动设置源位置. (3认同)
  • 仅当您在加载的文件中定义了该函数时,此方法才有效.如果你想通过Cx e从你的来源发送到REPL的定义,你会得到`错误:函数的定义 - 来源FOO-BAR没有包含有意义的信息. (3认同)
  • META 逗号可以让你跳回来 (2认同)