如何在 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")
但是,当我将它放入我的实际初始化文件中并 运行 它时,它不起作用。我想如果我把 package-enable-at-startup
设为 nil 并注释掉 package-initialize
,那粘液就起作用了。我的猜测是通过 melpa 安装的 slime 正在“覆盖”使用 slime-helper 的 slime 初始化。由于包依赖性,我无法通过 melpa 卸载 slime,我担心我可能会搞砸。但我还需要我所有的包来初始化除了粘液。所以我想知道是否有办法初始化我所有的包,但是抑制粘液包。
我认为最简单的方法是使用 package-load-list
禁用“elpa slime”的加载。使用 C-hv 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 粘液”首先出现在您的 load-path
上。这可能会也可能不会破坏包系统加载的依赖项。如果它们坏了,我会看看 quicklisp
是否可以管理它们并以这种方式处理它们,或者我会手动管理它们。
一段时间以来,我一直在尝试让 slime+sbcl 在我的 emacs (26.3) 上运行。我首先通过 melpa 安装了 slime,但没有用。我终于让 slime 能够使用 quicklisp 和以下代码在干净的 emacs (emacs -q) 上工作:
(load "~/quicklisp/slime-helper.el")
(setq inferior-lisp-program "sbcl")
但是,当我将它放入我的实际初始化文件中并 运行 它时,它不起作用。我想如果我把 package-enable-at-startup
设为 nil 并注释掉 package-initialize
,那粘液就起作用了。我的猜测是通过 melpa 安装的 slime 正在“覆盖”使用 slime-helper 的 slime 初始化。由于包依赖性,我无法通过 melpa 卸载 slime,我担心我可能会搞砸。但我还需要我所有的包来初始化除了粘液。所以我想知道是否有办法初始化我所有的包,但是抑制粘液包。
我认为最简单的方法是使用 package-load-list
禁用“elpa slime”的加载。使用 C-hv 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 粘液”首先出现在您的 load-path
上。这可能会也可能不会破坏包系统加载的依赖项。如果它们坏了,我会看看 quicklisp
是否可以管理它们并以这种方式处理它们,或者我会手动管理它们。