繁体   English   中英

如何在 emacs (slime) 上使用 package-initialize 阻止包初始化

[英]How to stop a package from initializing with package-initialize on emacs (slime)

我一直在尝试让 slime+sbcl 在我的 emacs (26.3) 上工作一段时间。 我首先通过 melpa 安装了 Slime,但没有用。 我终于让 Slime 能够使用 quicklisp 和以下代码在干净的 emacs (emacs -q) 上工作:

(load "~/quicklisp/slime-helper.el")
(setq inferior-lisp-program "sbcl")

但是,当我将它放入我的实际 init 文件并运行它时,它不起作用。 我想,如果我将package-enable-at-startup为 nil 并注释掉package-initialize ,那么粘液就可以了。 我的猜测是通过 melpa 安装的 slime 正在“覆盖”使用 slime-helper 的 slime 初始化。 由于软件包依赖性,我无法通过 melpa 卸载 slime,并且担心我可能会搞砸一些事情。 但我还需要我的所有包进行初始化,除了粘液。 所以我想知道是否有办法初始化我的所有包,但抑制粘液包。

我认为最简单的方法是使用package-load-list禁用“elpa slime” package-load-list 请参阅Ch v package-load-list Return 的文档。 简而言之,您可以在init 文件中放入这样的内容。

(require 'package)
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/")
             '("gnu" . "https://elpa.gnu.org/packages/"))
(setq package-load-list '((slime nil))) ;; don't load slime
(package-initialize)

(load (expand-file-name "~/quicklisp/slime-helper.el"))
(setq inferior-lisp-program "sbcl")

package-initialize将跳过加载slime (并操纵你的load-path ,允许“quicklisp slime”首先出现在你的load-path 。这可能会也可能不会破坏包系统加载的依赖项。如果它们确实中断了,我' d 看看quicklisp可以管理它们并以这种方式处理它们,或者我会手动管理它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM