macos - 在 Mac 上使用什么 Common Lisp 环境?

标签 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 的 Emacs
  3. 在 lispbox-0.7 中,我将 Emacs.app 重命名为 Emacs.old.app
  4. Emacs for Mac OS X 分发版中的 Emacs.app 复制到 lispbox-0.7/
  5. Emacs.app.old/MacOSX/lispbox.sh 复制到 Emacs.app/MacOSX 提示:如果您使用的是 Finder,请选择“显示包”内容'
  6. 复制 Emacs.old.app/Resources/site-lisp/lispbox.elEmacs.app/Resources/site-lisp 7.然后编辑Emacs.app/Contents/MacOS/lispbox.sh如下图

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。为了仍然能够使用 Lisp in a Box 提供的 Emacs 版本,您可以编辑 Emacs.app/Contents/MacOS/lispbox.sh 以使用 *Emacs .old.app/Contents/MacOS/Emac*s

但是,这就是我在 Mac 上设置 Common Lisp 环境的方式。我想知道是否有不那么繁琐的方法。

最佳答案

这里是如何使用目前可用的最新二进制文件从头开始设置包含 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"))
    
  • 启动 Emacs 并使用 M-x slime

  • 调用 SLIME

关于macos - 在 Mac 上使用什么 Common Lisp 环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662596/

相关文章:

objective-c - 如何在 WebView(OSX 项目)中启动时加载 URL?

objective-c - 将 NSImage 导出到 Excel 工作表

emacs - 如何在 Emacs 组织模式中插入带有日期和时间的日程表

lisp - 如何从 Common Lisp 中的哈希表返回值?

xml - 我按照s-xml主页的例子在Lisp中使用 "print-xml"时出现错误

directory - 普通口齿不清 : creating a directory

macos - Apple_Ubiquity_Message 到底是什么?

从 ImageMagick 安装 Mac 操作系统时 C 编译 fatal error 'file not found'

emacs - 如何将 GUD 断点键绑定(bind)更改为旧的键绑定(bind)

emacs - 尝试使用捕获时的组织模式设置问题