如何弥补可能的近期变化

可能有一些轻微/重大的变化如何粘液的作品,但从那时起,我很难修复它。

我习惯了一个泥水,开始的时候有一个REPL就像

CL-USER>

a *scratch* buffer以及所有打开的缓冲区和REPL之间的紧密交互。

在意识到Ubuntu软件包系统不会让我到任何地方的时候,我自己使用给定的手册安装了emacs24.2和最新的软件(cvs checkout)。

我的〜/ .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))启用了粘液REPL缓冲区初始化。
  • (load (expand-file-name "~/quicklisp/slime-helper.el"))启用了我习惯的所有快捷方式,我通过(ql:quickload "quicklisp-slime-helper)
  • 这些步骤明显地解决了所有问题,但打开的缓冲区和REPL之间的紧密交互仍然被破坏。

    例如

    我习惯于在打字时进行交互

    (FORMAT t "foobar~%")
    

    放入缓冲区*scratch*然后使用CMx,将导致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()
    

    这使我有两种困惑:

  • 按预期在REPL中没有输出
  • 给出(可疑的)假设,该行包含一个错误:这不是我用于粘液的错误/调试屏幕,它应该看起来像这张图片的右上方窗口。
  • 我得到的另一个症状是,应该扩展给定宏表达式的cx cm在Slime-repl sbcl缓冲区中工作,但在其他任何缓冲区中都会显示消息“Cc RET未定义”。

    其他人是否遇到过类似的问题并找出解决方法?


    看起来你已经用来启动Mx slime-scratch作为SLIME模式的一部分。 要恢复该功能,您可以在.emacs文件中执行此操作:

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

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

    链接地址: http://www.djcxy.com/p/67611.html

    上一篇: how to compensate probable recent changes

    下一篇: repl isn't here