代码之家  ›  专栏  ›  技术社区  ›  prosseek

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

  •  6
  • prosseek  · 技术社区  · 14 年前

    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)
    

    (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运行与粘液,但我对目前的设置感到满意,唯一的问题是,因为 (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 .

    1 回复  |  直到 7 年前
        1
  •  5
  •   Michał Marczyk    14 年前

    当然,你可以用 而不仅仅是 为了让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 如果我想开始的话,这对我来说很好,因为在我的粘液中,Clojure和SBCL的比例很高。

    更新:

    (对于负参数,第一个键是meta-minus),这将提示输入 slime lisp实现 (使用制表符完成),然后启动所需的Lisp。在上面的配置示例中,

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

    推荐文章