以下是我设置它们的步骤,而不使用ELPA。希望这有所帮助。
使用MacPorts获取SLIME
sudo port -v install slime
获取 paredit
curl -O http://mumble.net/~campbell/emacs/paredit.el
获取Clojure和Clojure-contrib
sudo port -v install clojure clojure-contrib
curl -O http://build.clojure.org/snapshots/org/clojure/clojure/1.1.0-master-SNAPSHOT/clojure-1.1.0-master-20091202.150145-1.jar
curl -O http://build.clojure.org/snapshots/org/clojure/clojure-contrib/1.1.0-master-SNAPSHOT/clojure-contrib-1.1.0-master-20091212.205045-1.jar
获取Clojure-mode和Swank-clojure(Emacs侧)
git clone http://github.com/technomancy/clojure-mode.git
git clone http://github.com/technomancy/swank-clojure.git
获取 swank-clojure(Clojure端)
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
cd path/to/dir/swank-clojure
lein jar
将 clojure、clojure-contrib 和 swank-clojure 的 .jar 文件放置在 ~/.swank-clojure 或 ~/.clojure 中(这是 swank-clojure.el 搜索它们的默认位置)。
添加到 ~/.emacs 或 ~/Library/Preferences/Aquamacs Emacs/customization.el (更改路径以匹配您自己的设置)
(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/")
(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/contrib/")
;; 更改这些路径以匹配您的设置
(add-to-list 'load-path "path/to/dir/clojure-mode/")
(add-to-list 'load-path "path/to/dir/swank-clojure/")
(add-to-list 'load-path "path/to/dir/paredit/")
;; 自定义 swank-clojure 启动以反映可能的类路径更改
;; M-x ielm `slime-lisp-implementations RET 或查看 `swank-clojure.el' 了解更多信息
(defadvice slime-read-interactive-args (before add-clojure)
(require 'assoc)
(aput 'slime-lisp-implementations 'clojure
(list (swank-clojure-cmd) :init 'swank-clojure-init)))
(require 'slime)
(require 'paredit)
(require 'clojure-mode)
(require 'swank-clojure)
(eval-after-load "slime"
'(progn
;; "Extra" 功能(contrib)
(slime-setup
'(slime-repl slime-banner slime-highlight-edits slime-fuzzy))
(setq
;; 使用 UTF-8 编码
slime-net-coding-system 'utf-8-unix
;; 使用模糊匹配(M-Tab)
slime-complete-symbol-function 'slime-fuzzy-complete-symbol)
;; 使用括号编辑模式 paredit
(defun paredit-mode-enable () (paredit-mode 1))
(add-hook 'slime-mode-hook 'paredit-mode-enable)
(add-hook 'slime-repl-mode-hook 'paredit-mode-enable)))
;; 默认情况下,输入和输出具有相同的颜色
;; 自定义结果颜色以区分它们
;; 如果您想进一步自定义,请查找 `slime-repl.el' 中的 `defface'
(custom-set-faces
'(slime-repl-result-face ((t (:foreground "LightGreen")))))
(eval-after-load "swank-clojure"
'(progn
;; 使 REPL 更友好地与 Clojure 交互(ELPA 不包括此功能?)
;; 该函数在 swank-clojure.el 中定义但未使用 ?!?
(add-hook 'slime-repl-mode-hook
'swank-clojure-slime-repl-modify-syntax t)
;; 添加 Incanter 的类路径(仅作为示例)
;; 设置类路径的首选方法是使用 swank-clojure-project
(add-to-list 'swank-clojure-classpath
"path/to/incanter/modules/incanter-app/target/*")))