Clojure+Emacs环境搭建

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值