gpt4 book ai didi

emacs - 粘液 - 如何补偿最近可能发生的变化

转载 作者:行者123 更新时间:2023-12-02 00:16:10 25 4
gpt4 key购买 nike

粘液的工作方式可能有一些小的/大的变化,但从那以后我很难修复它。

我习惯了一个史莱姆,启动时,有一个 REPL 之类的

CL-USER>

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

在意识到 Ubuntu 包系统不再能让我到达任何地方后,我使用给定的手册自行安装了 emacs24.2 和最新的 slime(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)) 启用了 slime REPL要初始化的缓冲区。
  • (load (expand-file-name "~/quicklisp/slime-helper.el")) 启用所有我习惯的快捷方式,我通过下载包(ql:quickload "quicklisp-slime-helper)

这些步骤显然修复了所有问题,但开放缓冲区和 REPL 之间的紧密交互仍然存在问题。

例如

我习惯了打字的交互方式

(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 应该看起来像 this 中的右上角窗口图片。

我得到的另一个症状是,应该扩展给定宏表达式的 c-x c-m 在 slime-repl sbcl 缓冲区中工作,但在任何其他缓冲区中,消息“C-c RET is not已定义”出现。

有没有其他人遇到类似的问题并想出解决办法?

最佳答案

您似乎习惯于启动 M-xslime-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* 缓冲区。

关于emacs - 粘液 - 如何补偿最近可能发生的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12988179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com