修改 info.plist 中的 CFBundleExecutable 选项能够带参数执行emacs shell
LISPBOX针对MAC APP的结构,修改了EMACS Bundle 中的 info.plist 文件的 Executable 选项,正常的该选项就是可执行文件名,好比 EMACS 的可执行文件名就是 emacs ,可是这样直接运行的话就没办法附加各类运行参数了,因此LISPBOX 就在包里加入了一个 lispbox.sh 的脚本,这个脚本的做用就是执行一个带参数的 emacs ,具体内容以下: bash
#!/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))'
实际执行的操做就是获取当前所在的目录名,设置SBCL的路径,而后执行:
Emacs --no-init-file --no-site-file app
“--eval=...”这部分至关于在EMACS里执行 load lispbox.el 而后再执行 slime.el code