質問

There has probably some minor/major change in how slime works, but since then I got a hard time fixing it.

I am used to a slime where, when started, there is a REPL like

CL-USER>

a *scratch* buffer and a tight interaction between all open buffers and the REPL.

After realizing that the Ubuntu package system wont get me anywhere anymore I installed emacs24.2 and the newest slime (cvs checkout) by myself using the given manuals.

My ~/.emacs file now looks like this:

;;slime-setup 
(load (expand-file-name "~/quicklisp/slime-helper.el"))
(setq inferior-lisp-program "sbcl") 
(add-to-list 'load-path "/home/simkoc/emacs/slime/") 
(require 'slime-autoloads) 
(slime-setup '(slime-fancy slime-asdf))
  • (slime-setup '(slime-fancy slime-asdf)) enabled the slime REPL buffer to be initialized.
  • (load (expand-file-name "~/quicklisp/slime-helper.el")) enabled all the shortcuts I am used to, I downloaded the package via (ql:quickload "quicklisp-slime-helper)

those steps apparently fixed everything but the tight interaction between the open buffers and the REPL which is still broken.

E.g.

I am used to an interaction where typing

(FORMAT t "foobar~%")

into a buffer *scratch* and then using C-M-x on it, would result in the repl printing "foobar". Instead I am getting an error:

Debugger entered--Lisp error: (void-function FORMAT)
  (FORMAT t "foobar~%")
  eval-region(291 312 t (lambda (ignore) (goto-char 312) (quote (FORMAT t "foobar~%"))))  ; Reading at buffer position 310
  apply(eval-region (291 312 t (lambda (ignore) (goto-char 312) (quote (FORMAT t "foobar~%")))))
  eval-defun-2()
  eval-defun(nil)
  call-interactively(eval-defun nil nil)
  recursive-edit()

which confuses me in two ways:

  1. there is no output in the REPL as expected
  2. given the (doubtful) assumption that the line contained an error: this is not the error/debug-screen I am used by slime which is supposed to look like the right top window in this picture.

Another symptom I got is, that c-x c-m which is supposed to expand a given macro-expression works in the slime-repl sbcl buffer, but in any other buffer the message "C-c RET is not defined" appears.

Does anybody else got similar problems and figured out how to fix it?

役に立ちましたか?

解決

It looks like you've used to start M-xslime-scratch as part of the SLIME mode. To have that functionality back you could do this in your .emacs file:

(add-hook 'slime-mode-hook 'slime-scratch)
(add-hook 'slime-repl-mode-hook 'slime-scratch)

I'm not sure on slime-repl-mode-hook, see if you really need it. Probably you need only the first one to automatically create *slime-scratch* buffer when SLIME starts.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top