1,安装 JDK:
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
设置环境变量:
set JAVA_HOME=E:\dev\Java\jdk1.6.0_32
set Path=%JAVA_HOME%\bin;%Path%
测试:
java -version
2,安装 Maven 3:
下载地址:
http://maven.apache.org/download.html
设置环境变量:
set MAVEN_HOME=E:\dev\JavaTools\apache-maven-3.0.4
set MAVEN_OPTS=-Xms256m -Xmx512m
set Path=%Path%;%MAVEN_HOME%\bin
测试:
mvn --version
3,安装 leiningen:
下载地址:
https://github.com/technomancy/leiningen/downloads
最好选择下面的组合:
https://github.com/downloads/technomancy/leiningen/leiningen-1.5.2-win.zip
https://github.com/downloads/technomancy/leiningen/leiningen-1.7.0-standalone.jar
设置环境变量:
set LEIN=E:\dev\Clojure\lein
set LEIN_JAR=E:\dev\Clojure\lein\leiningen-1.7.0-standalone.jar
set Path=%Path%;%LEIN%
测试:
lein version
4,安装 swank-clojure:
lein plugin install swank-clojure1.4.2
5,下载 Emacs:
下载地址:
http://ftp.gnu.org/gnu/emacs/windows/
P.S. 所有的插件都放在 %APPDATA%\.emacs.d\plugins 下面。
6,下载 clojure-mode 插件:
下载地址:
https://github.com/jochu/clojure-mode
只需要下载 clojure-mode.el 放到 %APPDATA%\.emacs.d\plugins\clojure-mode
用 Emacs 编辑 ~/.emacs 文件(提示,C-x C-f ~/.emacs):
;; load clojure-mode
(add-to-list'load-path"~/.emacs.d/plugins/clojure-mode")
(require'clojure-mode)
7,下载 auto-complete 插件:
下载地址:
http://cx4a.org/software/auto-complete/
编辑 ~/.emacs 文件:
;; load auto-complete
(add-to-list'load-path"~/.emacs.d/plugins/auto-complete")
(require'auto-complete-config)
(ac-config-default)
(add-to-list'ac-dictionary-directories"~/emacs.d/plugins/auto-complete/dict")
8,下载 color-theme 插件:
下载地址:
http://www.nongnu.org/color-theme/
编辑 ~/.emacs 文件:
;; load color-theme
(add-to-list'load-path"~/.emacs.d/plugins/color-theme")
(require'color-theme)
(color-theme-initialize)
(color-theme-xemacs)
9,下载 ParEdit 插件:
下载地址:
http://www.emacswiki.org/emacs/ParEdit
编辑 ~/.emacs 文件:
;; load ParEdit
(add-to-list'load-path"~/.emacs.d/plugins/paredit")
(autoload 'paredit-mode "paredit"
"Minor mode for pseudo-structurally editing List code."t)
(add-hook 'emacs-list-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'lisp-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'lisp-interaction-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'scheme-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'clojure-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'slime-repl-mode-hook (lambda () (paredit-mode +1)))
;; stop SLIME'sREPL from grabbing DEL,
;; which is annoyingwhenbackspacing over a '('
(defun override-slime-repl-bindings-with-paredit ()
(define-key slime-repl-mode-map
(read-kbd-macro paredit-backward-delete-key) nil))
(add-hook 'slime-repl-mode-hook'override-slime-repl-bindings-with-paredit)
最终测试:
1,新建一个 project:
lein new hello
2,用 Emacs 编辑 core.clj:
用 M-x clojure-jack-in 启动 slime。
我的 .emacs 配置文件:
;; load clojure-mode
(add-to-list'load-path"~/.emacs.d/plugins/clojure-mode")
(require'clojure-mode)
;; load auto-complete
(add-to-list'load-path"~/.emacs.d/plugins/auto-complete")
(require'auto-complete-config)
(ac-config-default)
(add-to-list'ac-dictionary-directories"~/emacs.d/plugins/auto-complete/dict")
;; load color-theme
(add-to-list'load-path"~/.emacs.d/plugins/color-theme")
(require'color-theme)
(color-theme-initialize)
(color-theme-xemacs)
;; load ParEdit
(add-to-list'load-path"~/.emacs.d/plugins/paredit")
(autoload 'paredit-mode "paredit"
"Minor mode for pseudo-structurally editing List code."t)
(add-hook 'emacs-list-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'lisp-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'lisp-interaction-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'scheme-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'clojure-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'slime-repl-mode-hook (lambda () (paredit-mode +1)))
;; stop SLIME'sREPL from grabbing DEL,
;; which is annoyingwhenbackspacing over a '('
(defun override-slime-repl-bindings-with-paredit ()
(define-key slime-repl-mode-map
(read-kbd-macro paredit-backward-delete-key) nil))
(add-hook 'slime-repl-mode-hook'override-slime-repl-bindings-with-paredit)
;; prevent any startup message
(setq inhibit-startup-message t)
;; prevent Emacs from making backup files
(setq make-backup-files nil)
;; prevent .save files
(setq auto-save-list-file-name nil)
;; prevent auto save
(setq auto-save-default nil)
;; highlight search object
(setq search-highlight t)
;; highlight query object
(setq query-replace-highlight t)
;; turn off tab character
(setq-default indent-tabs-mode nil)
;; goto line hotkey: ctrl + l
(global-set-key"\C-l"'goto-line)
我的 batch 脚本:
set EMACS=%APPDATA%\.emacs.d
set PWD=%~d0%~p0
echo%PWD%
mkdir "EMACS"
mklink /D "%EMACS%\plugins" "%PWD%\.emacs.d\plugins"
mklink "%APPDATA%\.emacs" "%PWD%\.emacs"
set JAVA_HOME=E:\dev\Java\jdk1.6.0_32
set Path=%JAVA_HOME%\bin;%Path%
set MAVEN_HOME=E:\dev\JavaTools\apache-maven-3.0.4
set MAVEN_OPTS=-Xms256m -Xmx512m
set Path=%Path%;%MAVEN_HOME%\bin
set LEIN=E:\dev\Clojure\lein
set LEIN_JAR=E:\dev\Clojure\lein\leiningen-1.7.0-standalone.jar
set Path=%Path%;%LEIN%
REM save environment variables
setx /m JAVA_HOME"E:\dev\Java\jdk1.6.0_32"
setx /m MAVEN_HOME"E:\dev\JavaTools\apache-maven-3.0.4"
setx /m MAVEN_OPTS"-Xms256m -Xmx512m"
setx /m LEIN"E:\dev\Clojure\lein"
setx /m LEIN_JAR"E:\dev\Clojure\lein\leiningen-1.7.0-standalone.jar"
setx /m Path"%JAVA_HOME%\bin;%Path%;%MAVEN_HOME%\bin;%LEIN%"
REM install swank-clojure
lein plugin install swank-clojure1.4.2
References:
http://www.cnblogs.com/darkluck99/archive/2012/02/20/2360216.html
http://www.cnblogs.com/yoya/archive/2012/03/17/2403879.html