emacs - 在 Emacs 上同时运行 Clojure 和其他 Lisp

标签 emacs clojure lisp slime

我使用 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)))
)

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

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

已添加

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

最佳答案

当然,你可以使用 C-u M-x slime 而不是 M-x 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'ing 中 Clojure 与 SBCL 的比例很高。

更新:

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

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

关于emacs - 在 Emacs 上同时运行 Clojure 和其他 Lisp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3340805/

相关文章:

emacs - 关于修复公司模式与Yasnippet之间的干扰问题

loops - 如何在clojure中的每一行打印数字列表?

clojure - Clojure core.logic 中的阶乘

recursion - Common-Lisp 中的递归阶乘函数

macros - defun 或 setf 是否更适合在 common lisp 中创建函数定义?为什么?

emacs - 我如何在emacs中按半词法排序(即按词法排序),但3排在11之上呢?

macos - 如何修改 IntelliJ 的 Emacs 键盘映射中的控制/选项/命令键映射?

Clojure数组的性能问题

javascript - 如何从 JSCL 方法调用 Common Lisp 代码

Emacs 小 map : change color of screen zone