2014-07-18 8 views
6

Ho installato la melma usando https://github.com/thephoeron/slime-pack e voglio esplorare il common-lisp un po 'di più.come si salta ad una definizione di funzione in emacs quando si usa la melma?

Come accedere alla fonte per una funzione particolare in emacs?

per esempio, se ho una funzione:

(type-of 1) 

e voglio visitare la sorgente del type-of, come può essere fatto?

+0

Non uso la libreria a cui si fa riferimento, ma uso 'M-x find-function' molto spesso. Funziona per te? C'è anche 'find-function-other-window' e' find-function-other-frame'. – lawlist

+0

Ho avuto l'errore 'Directory/usr/bin/src/code' non esiste, creato?' Ma ha funzionato dopo aver installato Slime con il gestore di pacchetti di Emacs. – Ehvince

risposta

10

Meta.

chiama la funzione: slime-edit-definition

Per saltare alle funzioni all'interno della vostra applicazione lisp potrebbe essere necessario fare qualcosa in più per puntare alle fonti. In SBCL bisogna sb-ext:set-sbcl-source-location al posto giusto nel .sbclrc:

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

È possibile modificare .sbclrc con C-xC-f~/.sbclrc in Emacs.

+3

Se si crea SBCL da soli, il percorso di origine viene impostato automaticamente. – Xach

+2

Funziona solo se la funzione è stata definita in un file caricato. Se lo fai con una definizione che hai inviato al REPL dalla tua sorgente tramite Cx e, otterrai 'Errore: DEFINITION-SOURCE della funzione FOO-BAR non conteneva informazioni significative. –

+0

Ma, come tornare indietro? –