2014-07-18 8 views
6

У меня установлена ​​слизь с использованием https://github.com/thephoeron/slime-pack и вы хотите изучить общий-lisp немного больше.как перейти к определению функции в emacs при использовании слизи?

Как получить доступ к источнику для конкретной функции в emacs?

, например, если у меня есть функция:

(type-of 1) 

и я хочу, чтобы посетить источник type-of, как это может быть сделано?

+0

Я не использую библиотеку, на которую вы ссылались, но я часто использую 'M-x find-function'. Это работает для вас? Существует также 'find-function-other-window' и' find-function-other-frame'. – lawlist

+0

У меня была ошибка 'Directory/usr/bin/src/code' не существует, создайте ее ?, но она работала после того, как я установил Slime с менеджером пакетов Emacs. – Ehvince

ответ

10

Meta.

Это вызывает функцию: slime-edit-definition

Для прыжков с функциями внутри вашего LISP реализации, вам может понадобиться, чтобы сделать что-то дополнительно, чтобы указать на источники. В SBCL вы должны sb-ext:set-sbcl-source-location в правильное место в .sbclrc:

(sb-ext:set-sbcl-source-location "/path/to/sbcl/") 

Вы можете редактировать .sbclrc с C-хC-е~/.sbclrc в Emacs.

+3

Если вы сами создаете SBCL, местоположение источника устанавливается автоматически. – Xach

+2

Это работает только в том случае, если функция была определена в загруженном файле. Если вы попытаетесь сделать это с определением, которое вы отправили в REPL из своего источника через Cx e, вы получите 'Error: DEFINITION-SOURCE функции FOO-BAR не содержит значимой информации.' –

+0

Но, как отпрыгивать? –

Смежные вопросы