5

Emacs、SLIME、quicklisp を適切に連携させようとしています。次の環境をセットアップしています。

  • インストール済みの Emacs
  • SLIMEをEmacsにインストール
  • インストール済みSBCL
  • インストールされたquicklisp
  • (quicklisp-quickstart:install)SBCLで実行
  • (ql:add-to-init-file)SBCLで実行
  • (ql:quickload "quicklisp-slime-helper")SBCLで実行
  • (ql:quickload "cl-csv")SBCL で使用するインストール済みパッケージ cl-csv
  • (setq inferior-lisp-program "sbcl").emacs に追加
  • (load (expand-file-name "~/quicklisp/slime-helper.el")).emacs に追加
  • すべてを再起動しました

パッケージをロードして使用するためにtest.lispで始まるファイルがあります。(ql:quickload "cl-csv")ファイルを Emacs にロードして SLIME を実行し、それを使用してコンパイルしようとするとslime-compile-and-load-file、SBCL でPackage CL-CSV does not exist.

これらの部品を適切に連携させるために何が欠けていましたか?

4

3 に答える 3

1

Emacs の SLIME REPL で quicklisp を再インストールします。

問題は、Emacs Slime (REPL) が、quicklisp がインストールされているかどうかも、どこにインストールされているかもわからないことです。この問題を解決するには、Emacs のスライム 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)
CL-USER> (ql:quickload "quicklisp-slime-helper")    

例) 私の "~/.emacs" ファイル:

(use-package slime
  :ensure t
  :defer t
  :init
    (setq inferior-lisp-program "clisp")
  :config      
    (slime-setup '(slime-fancy slime-company))
  :hook
  (slime-mode . slime-company)
  (slime-mode . (lambda ()
                  (load (expand-file-name "D:/util/emacs27/quicklisp/slime-helper.el"))
                  (add-to-list 'slime-contribs 'slime-fancy)
                  (add-to-list 'slime-contribs 'inferior-slime))))

(use-package slime-company
  :after slime
  :bind-keymap 
    ("C-n" . company-select-next)
    ("C-p" . company-select-previous)
    ("C-d" . company-show-doc-buffer)
    ("M-." . company-show-location)
  :config (setq slime-company-completion 'fuzzy
                slime-company-after-completion 'slime-company-just-one-space))

次に、quicklisp が Emacs の HOME ディレクトリ ("~/") に再インストールされます。これで、(a) Windows 10 の HOME と (a) Emacs の HOME に同じ quicklisp がインストールされました。Emacs の Slime REPL でのみ quicklisp を使用する場合、Windows 10 の HOME にあるコピーは役に立たないので、削除できます。

于 2021-01-04T09:44:32.613 に答える