在Mac上使用哪种Common Lisp环境?

时间:2014-09-04 10:02:15

标签: macos emacs common-lisp

您使用的Common Lisp环境是什么?我刚开始阅读Peter Seibel的Practical Common Lisp(也可以在http://www.gigamonkeys.com/book/免费在线阅读),并推荐使用Lisp in a Box(http://common-lisp.net/project/lispbox/)。

但是,它自2011年以来一直没有更新,分发的Emacs版本相当陈旧(23.2.1)。所以我使用http://emacsformacosx.com提供的分发版将Emacs版本更新为24.3.1。这个有更好的Mac OS X集成。

要更新Emacs版本,请按以下步骤操作:

  1. 下载并安装 lispbox 0.7
  2. Mac OSX 24.3.1
  3. 下载Emacs
  4. 在lispbox-0.7中,我将 Emacs.app 重命名为 Emacs.old.app
  5. Emacs for Mac OS X 分发中的 Emacs.app 复制到 lispbox-0.7 /
  6. Emacs.app.old / MacOSX / lispbox.sh 复制到 Emacs.app/MacOSX 提示:如果您使用的是Finder,请选择'显示包内容
  7. Emacs.old.app/Resources/site-lisp/lispbox.el 复制到 Emacs.app/Resources/site-lisp 7.然后编辑 Emacs.app/Contents/MacOS/lispbox.sh ,如下所示
  8. lispbox.sh

    #!/bin/bash
    if [ "${0:0:2}" = "./" ]; then
        export LISPBOX_HOME=`pwd`/../../..
    else
        export LISPBOX_HOME=`dirname $0`/../../..
    fi
    export SBCL_HOME=${LISPBOX_HOME}/sbcl-1.0.42/lib/sbcl
    #exec ${LISPBOX_HOME}/Emacs.app/Contents/MacOS/Emacs --no-init-file --no-site-file --eval='(progn (load "lispbox") (slime))'
    exec ${LISPBOX_HOME}/Emacs.app/Contents/MacOS/Emacs-10.7 --no-site-file --eval='(progn (load "lispbox") (slime))'
    

    然后,您可以通过执行lispbox.sh

    来启动带有Lisp环境的Emacs

    请注意,我更改了编辑器并删除了 - no-init-file 选项以确保正在读取〜/ .emacs。要仍然能够在Box 提供的Emacs版本中使用with Lisp,您可以编辑 Emacs.app/Contents/MacOS/lispbox.sh 以使用* Emacs .old.app / Contents / MacOS / Emac * s

    但是,这就是我在Mac上设置Common Lisp环境的方法。我想知道是否有更简单的方法。

1 个答案:

答案 0 :(得分:8)

以下是如何使用目前可用的最新二进制文件从头开始使用Emacs,SBCL和SLIME设置环境。

  • http://emacsformacosx.com安装Emacs(Emacs版本24.3)

  • 在您选择的目录中从http://www.sbcl.org/platform-table.html安装SBCL 1.1.8(例如~/sbcl/

    $ tar xjvf sbcl-1.1.8-x86-64-darwin-binary.tar.bz2
    $ cd sbcl-1.1.8-x86-64-darwin
    $ INSTALL_ROOT=~/sbcl/ sh install.sh
    
  • http://www.quicklisp.org/beta/安装Quicklisp,然后使用Quicklisp安装SLIME

    $ curl -O http://beta.quicklisp.org/quicklisp.lisp
    $ SBCL_HOME=~/sbcl/lib/sbcl ~/sbcl/bin/sbcl --load quicklisp.lisp # launch SBCL 
    * (quicklisp-quickstart:install) ; complete Quicklisp installation
    * (ql:quickload "quicklisp-slime-helper") ; install SLIME
    * (ql:add-to-init-file) ; to load Quicklisp every time SBCL is started
    * (quit)
    
  • 使用这些行创建~/.emacs

    (setenv "SBCL_HOME" (expand-file-name "~/sbcl/lib/sbcl"))
    (setq inferior-lisp-program "~/sbcl/bin/sbcl")
    (load (expand-file-name "~/quicklisp/slime-helper.el"))
    
  • 使用M-x slime启动Emacs并调用SLIME