簡體   English   中英

使 Emacs/Slime/Quicklisp/SBCL 在 Windows 中工作

[英]Making Emacs/Slime/Quicklisp/SBCL work in Windows

我在 Windows 7.0 中使用上述組合已有幾個月了。 不幸的是,一位同事建議我將 slime-helper.el 安裝到 emacs 中,結果:Emacs Slime 不再識別 QL。

我在 Windows 上使用 SBCL 1.2.11,並且從命令行這個 sbcl 知道 ql 安裝。 這是我的 .sbclrc

;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames
                       "Documents/LISP/.asdf-install-dir/systems/setup.lisp"
                       (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

然后我打字

(ql:quickload "quicklisp-slime-helper")

它編譯了很多。 最后它說

要使用,請將其添加到您的 ~/.emacs 中:

(load (expand-file-name "~/Documents/LISP/.asdf-install-dir/systems/slime-helper.el"))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "sbcl")

現在這是我的 .emacs 文件中的相應部分

(load "c:/Users/xyz/Documents/LISP/.asdf-install-dir/systems/slime-helper.el")
(setq inferior-lisp-program "c:\\Progra~1\\Steelb~1\\12BDCB~1.11\\sbcl.exe")

我啟動了 emacs,它正常運行。

M-x slime

還是不錯的:

; SLIME 2015-06-01
CL-USER> 

但是之后:

(ql:quickload :my-project)

回來

Package QL does not exist.

但最糟糕的是,如果我從 .emacs-file 中刪除 slime-helper,它會再次識別 quicklisp 包,但每次調用 ql 都會鎖定 emacs。 我可以等待幾分鍾而沒有得到任何回應。

任何幫助表示贊賞。

對於遇到此問題的其他人,我在嘗試使用 Windows + Emacs + Slime + SBCL + QL 時遇到了類似的問題。 最后,它歸結為 Windows 認為我的主文件夾與 Emacs(因此,Slime)認為它是什么之間的沖突。

Windows:c:/用戶/用戶名

Emacs:c:/users/username/appdata/roaming

當我安裝 quicklisp 時,我從 cmd 提示符調用了 SBCL,因此該進程在 c:/users/username 中安裝了 quicklisp 文件夾以及新的 .sbclrc。

Emacs Slime 在 c:/users/username/appdata/roaming 中查找這些。

我通過將 c:/users/username 中的 quicklisp 文件夾和 .sbclrc 移動到 c:/users/username/appdata/roaming 來解決這個問題,因為我不打算與 SBCL 進行交互,除非通過 Slime。

問題是 Emacs Slime (REPL) 既不知道是否安裝了 quicklisp,也不知道它安裝在哪里。 解決問題所需要做的就是在 Emacs 的 slime repl重新安裝 quicklisp (“quicklisp.lisp”文件應該在 SLIME REPL 的當前工作文件夾中。)

M-x slime 
CL-USER> (load "quicklisp.lisp")
CL-USER> (quicklisp-quickstart:install)
CL-USER> (ql:add-to-init-file)

然后,quicklisp 將重新安裝在 Emacs 的 HOME 目錄(“~/”)中。 現在,您已經在 (a) Windows 10 的 HOME 和 (a) Emacs 的 HOME 中安裝了相同的 quicklisp。 如果你只在 Emacs 的 Slime REPL 上使用 quicklisp,那么 Windows 10' HOME 中的副本是沒有用的,你可以刪除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM