史莱姆 - 如何补偿最近可能的变化



粘液的工作方式可能有一些次要/重大变化,但是从那时起,我很难修复它。

我习惯了粘液,启动时,有一个像

CL-USER>

*scratch*缓冲区和所有开放缓冲区和替补之间的紧密相互作用。

意识到Ubuntu软件包系统将不再让我找到Emacs24.2和最新的粘液(CVS结帐),我自己使用给定的手册。

我的〜/.emacs文件现在看起来像:

;;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))启用了粘液式缓冲区要初始化。
  • (load (expand-file-name "~/quicklisp/slime-helper.el"))启用了所有我习惯的快捷方式,我通过 (ql:quickload "quicklisp-slime-helper)

这些步骤显然修复了一切,但开放缓冲区和仍然被打破的delp之间的紧密相互作用。

,例如

我习惯了键入

的相互作用
(FORMAT t "foobar~%")

进入缓冲区*scratch*,然后在其上使用C-M-X,将导致REPL打印" Foobar"。相反,我遇到了一个错误:

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()

以两种方式使我感到困惑:

  1. REPL中没有预期的输出
  2. 给定(怀疑的)假设,该行包含一个错误:这不是史莱姆的错误/调试屏幕,我使用的是该图片中的右上方窗口。

我遇到的另一个症状是,在 slime-repl sbcl 缓冲液中应该扩展给定的宏表达作品的C-X C-M,但在任何其他缓冲区中定义的"出现。

其他人是否会遇到类似的问题,并弄清楚如何修复它?

看起来您曾经启动 m-x slime-scratch作为粘液模式的一部分。要获得该功能,您可以在.emacs文件中执行此操作:

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

我不确定slime-repl-mode-hook,看看您是否真的需要它。可能您只需要第一个即可自动创建*slime-scratch*缓冲区时。

最新更新