如何在Emacs执行package-initialize时禁止Slime包初始化
解决方案
- 在
package-initialize执行前添加配置,禁用ELPA版本slime的自动加载,其余包保持正常初始化:
;; 除slime外所有包正常初始化 (setq package-load-list '((slime nil) all))
如果你已经自定义过package-load-list变量,改用追加写法即可:
(push '(slime nil) package-load-list)
- 在
package-initialize执行完成后,加载Quicklisp提供的slime:
(package-initialize) ;; 加载Quicklisp slime配置 (load "~/quicklisp/slime-helper.el") (setq inferior-lisp-program "sbcl")
兼容依赖slime的其他包的补充配置
如果有其他包依赖slime、禁用ELPA slime后出现加载报错,可以在package-initialize前将Quicklisp的slime目录加入加载路径优先级顶端,确保依赖包调用时加载的是Quicklisp版本的slime:
;; 路径替换为你本地~/quicklisp/dists/quicklisp/software/下实际的slime目录路径 (add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-v2.28/") (push '(slime nil) package-load-list)
生效验证
启动Emacs后执行M-x slime-version,查看返回的版本路径指向Quicklisp安装目录而非~/.emacs.d/elpa/下的slime路径,即说明配置生效。
内容的提问来源于stack exchange,提问作者LogarithmicEagle
相关产品推荐
相关产品推荐

