【问题标题】:Running Clojure and other Lisp at the same time on Emacs在 Emacs 上同时运行 Clojure 和其他 Lisp
【发布时间】:2011-03-21 10:15:13
【问题描述】:

我使用Aquamacs,Aquamacs 预装了SLIME

(setq inferior-lisp-program "/usr/local/bin/sbcl") #####!!!
(add-to-list 'load-path "/Library/Application Support/Aquamacs Emacs/SLIME/contrib")
(add-to-list 'load-path "/Library/Application Support/Aquamacs Emacs/SLIME")
(require 'slime)
(slime-setup)

根据某处的要求,我尝试通过添加此代码来使用 Clojure。

(add-to-list 'load-path "~/clojure/clojure-mode")
(setq inferior-lisp-program "/Users/smcho/bin/clj") ################
(require 'clojure-mode)
(setq auto-mode-alist
  (cons '("\\.clj$ . clojure-mode")
     auto-mode-alist))
(add-hook 'clojure-mode-hook
  '(lambda ()
     (define-key clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp)))
)

我无法让它使用 SLIME 运行 Clojure,但我对当前设置感到满意,唯一的问题是因为 (setq inferior-lisp-program ...) 代码,我必须根据我使用的情况更改 .emacs 代码Clojure 或SBCL

有什么办法可以解决这个问题吗?我可以在多个(劣质)Lisp 之间进行选择吗?

添加

我可以让 Clojure 在 Aquamacs 上运行。请参考Running Clojure with 'lein swank' on Aquamacs problem。如果你想运行 Aquamacs/Clojure,忘记上面写的设置。您只需要一行,(slime-setup '(slime-repl))lein swank

【问题讨论】:

  • 添加了 Lisp 标签,以便 Common Lisp SLIMEs 可以看看;我希望他们比典型的 Clojurian 更频繁地切换劣质^_superior Lisps。

标签: emacs clojure lisp slime


【解决方案1】:

当然,您可以使用 Cu Mx slime 而不仅仅是 Mx slime 让 SLIME 询问您要启动的 Lisp 可执行文件的名称,无论您使用的是什么默认已经填好了。

还有一个 slime-lisp-implementations 变量,我已经配置如下:

(setq slime-lisp-implementations
      `((clojure ,(swank-clojure-cmd) :init swank-clojure-init)
        (sbcl ("sbcl") :coding-system utf-8-unix)))

我不得不说,我只是不记得这对我有什么作用了(如果它确实有什么作用的话)...键入C-h v slime-lisp-implementations 大致了解它应该做什么。如果我想启动它,我似乎必须输入sbcl,这对我来说很好,因为我的 SLIME 中 Clojure 与 SBCL 的比率很高。

更新:

我刚刚重新发现了 M-- Mx slime(第一个键是负参数的元减号),它提示输入 slime-lisp-implementations 中的一个 Lisp 实现的名称(带有标签完成),然后启动所需的 Lisp。使用上述示例配置,M-- M-x slime sbcl 启动 SBCL。

(我发现这主要是因为它允许配置更复杂的命令来启动 Lisp——例如(sbcl-options ("sbcl" "--an-option" "--another-option") ...)(sbcl-clbuild ("/path/to/clbuild" "lisp") ...)——并通过名称引用它们。)

【讨论】:

  • 顺便说一句,至少(clojure ...) 条目绝对保证什么都不做,因为swank-clojure 目前安排在 (Clojure) Swank 服务器启动之前替换它。
猜你喜欢
  • 2011-08-25
  • 2011-04-23
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
相关资源
最近更新 更多