64位window7下配置Clojure+Emacs开发环境

原文地址

    为了学习Clojure,我最近特别在windows下配置了基于EmacsClojure开发环境。把过程做个记录,跟大家分享一下。过程不算太复杂,关键是要多使用Google来解决问题,有些版本问题比较难解决,耐心多尝试就能成功。很多同学都说使用linux更合适等等,我觉得确实有道理,但windows毕竟是很多程序员每天工作必用的工具,使用起来方便的多,所以还是有必要折腾一把。

 
开始了,首先我的操作系统是 64 位的 windows7 ,英文版。随着现在内存的价格下降, 64 win7 系统已经开始成为程序员的主要工作平台,所以我们配置的开发环境也要能支持 64 win7 才算合格。
 
具体步骤:
1.    安装 jdk ,因为 Clojure 是基于 JVM 的语言,所以 java 开发环境肯定是必装的。我们直接下载 Oracle 官方的 64 位安装包, 1.7 的最新版本: jdk-7u2-windows-x64.exe 。下载完毕后双击安装即可。
安装完毕,添加环境变量 JAVA_HOME ,内容为 jdk 的系统路径。
例如:
JAVA_HOME => D:\Program Files\Java\jdk1.7.0_02
PATH =>   D:\Program Files\Java\jdk1.7.0_02\bin
 
打开终端,测试,输入 java version 回车

       

2.    安装 maven2 maven java 开发常用的项目构建工具,提供 jar 包的管理功能,因为 leiningen 需要使用 maven 的软件仓库进行包的管理,因此,我们先要安装 maven2 。从官方下载压缩包,我下载的是 2.2.1
下载网站: http://maven.apache.org/download.html
下载完毕,解压到本地目录,我放置在 D:\new\apache-maven-2
 
添加环境变量:各位同学请输入自己的路径
M2_HOME => D:\new\apache-maven-2
M2 => D:\new\apache-maven-2\bin
MAVEN_OPTS => -Xms256m -Xmx512m
PATH => %M2%
 
打开终端,测试,输入 mvn --version 回车

 

3.    安装 leiningen leiningen 是基于 Clojure 的项目构建工具,可以为 Clojure 项目打包解决项目依赖,这也是我们这次配置中要使用的主要工具。
下载 leiningen windows 压缩包和 jar 包(这里注意,不要用 1.62 的安装脚本安装,运行后面步骤时会出现错误),我下载的是:
leiningen-1.5.2-win.zip leiningen-1.7.0-SNAPSHOT-standalone.jar
下载网站: https://github.com/technomancy/leiningen/downloads
下载完毕, leiningen-1.5.2-win.zip 解压缩到本地目录。我放置在 D:\new\lein ,同时把 leiningen-1.7.0-SNAPSHOT-standalone.jar 拷贝到这个文件夹下面
 
添加环境变量:各位同学请输入自己的路径
Path => D:\new\lein
LEIN => D:\new\lein
LEIN_JAR => d:\new\lein\leiningen-1.7.0-SNAPSHOT-standalone.jar
打开终端,测试,输入 lein version 回车

 

安装 leiningen 插件:
swank-clojure ,用于 Emacs repl 插件,集成了 SLIME 功能。使用命令

lein plugin install swank-clojure 1.4.0回车

lein会自动下载相关依赖并安装swank-clojure

至此,lein安装完毕

 
4.    安装 Emacs Emacs 是一个多功能的文本编辑工具,可谓大名顶顶,是 Hacker 们的最爱。我们下载最新的 Emacs2.4 版。
下载地址: https://code.google.com/p/emacs-for-windows/updates/list
压缩包解压到本地路径。
安装 Clojure 插件 clojure-mode
下载地址 https://github.com/jochu/clojure-mode
只下 clojure-mode.el 即可,下载完毕放到 Emacs 的默认插件目录下面
win7 下, Emacs 的默认插件目录是 C:\Users\ 用户名 \AppData\Roaming\.emacs.d\
由于 AppData 是隐藏文件,要注意。我放置的路径是 C:\Users\Adam\AppData\Roaming\.emacs.d\clojure-mode\clojure-mode.el
Emacs 的默认配置文件夹是 C:\Users\ 用户名 \AppData\Roaming ,配置文件名是 .emacs 。如果文件不存在,可以手动创建一个。
编辑 .emacs 文件,添加如下内容:
(add-to-list 'load-path "~/.emacs.d")

(add-to-list 'load-path "~/.emacs.d/clojure-mode")

 
(require 'clojure-mode)
其他插件可选择性的安装,关于 Emacs 插件的安装和配置,这里就不多讲了,大家多 Google 即可。记住一点,开源东西 bug 不少,版本兼容性差,大家一定要耐得住性子才能成功啊。坚持,再坚持,哈哈,痛苦的过程。
推荐安装的插件: auto-complete, paredit,color-theme
全部的配置如下 :
 

 1 (add-to-list 'load-path "~/.emacs.d")
 2 (add-to-list 'load-path "~/.emacs.d/clojure-mode")
 3 (add-to-list 'load-path "~/.emacs.d/color-theme")
 4 (add-to-list 'load-path "~/.emacs.d/auto-complete")
 5 
 6 (require 'clojure-mode)
 7 
 8 (require 'color-theme)
 9 (color-theme-initialize)
10 (color-theme-xemacs)
11 
12 (require 'auto-complete-config)
13 (ac-config-default)
14 (add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/dict")
15      
16 (autoload 'paredit-mode "paredit"
17       "Minor mode for pseudo-structurally editing Lisp code." t)
18     (add-hook 'emacs-lisp-mode-hook       (lambda () (paredit-mode +1)))
19     (add-hook 'lisp-mode-hook             (lambda () (paredit-mode +1)))
20     (add-hook 'lisp-interaction-mode-hook (lambda () (paredit-mode +1)))
21     (add-hook 'scheme-mode-hook           (lambda () (paredit-mode +1)))
22     (add-hook 'clojure-mode-hook           (lambda () (paredit-mode +1)))
23     (add-hook 'slime-repl-mode-hook (lambda () (paredit-mode +1)))
24 (defun override-slime-repl-bindings-with-paredit ()
25             (define-key slime-repl-mode-map
26                 (read-kbd-macro paredit-backward-delete-key) nil))
27                 (add-hook 'slime-repl-mode-hook 'override-slime-repl-bindings-with-paredit) 
28 
29 (custom-set-variables
30  ;; custom-set-variables was added by Custom.
31  ;; If you edit it by hand, you could mess it up, so be careful.
32  ;; Your init file should contain only one such instance.
33  ;; If there is more than one, they won't work right.
34 '(tool-bar-mode nil))
35 (custom-set-faces
36  ;; custom-set-faces was added by Custom.
37  ;; If you edit it by hand, you could mess it up, so be careful.
38  ;; Your init file should contain only one such instance.
39  ;; If there is more than one, they won't work right.
40 '(default ((t (:inherit nil :stipple nil :background "gray80" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 113 :width normal :foundry "outline" :family "Consolas")))))
41 
42 (show-paren-mode 1)
43 (setq visible-bell nil)
44 (setq scroll-step 1
45         scroll-margin 3
46         scroll-conservatively 10000)
47 (global-linum-mode 'linum-mode) ;
48 (set-scroll-bar-mode nil) ;去掉滚动条
49 (auto-save-mode nil) ;;禁止自动保存
50 (global-set-key (kbd "C-|") 'other-window);
51 (setq frame-title-format
52       '("%S" (buffer-file-name "%f"
53                    (dired-directory dired-directory "%b"))))

 
 
5.    好了,安装完毕,经过一大堆的配置,现在我们要开始享受劳动成果了。
1 ) 新建一个文件夹,我用的是 D:\new\ClojCodes\
2 ) 进入终端,输入以下命令:
cd d: 回车
cd new\ClojCodes\ 回车
lein new Project1 回车
3 ) 这时,会创建一个 D:\new\ClojCodes\ Project1 的项目文件夹
我们打开这个文件下的 project1.clj 把内容修改为:

1 (defproject SwankProject "1.0.0-SNAPSHOT"
2   :description "FIXME: write description"
3   :dependencies [[org.clojure/clojure "1.3.0"]
4                  [org.clojure/clojure-contrib "1.2.0"]])

 
保存。
 
4 ) 终端下进入这个文件夹,输入
lein deps 回车
lein 将通过 maven 的仓库管理,自动下载依赖的 jar 包并更新
可能需要较长时间的等待,请耐心。
 
5 ) 启动 Emacs ,打开我们修改过的 project1.clj ,按下 alt+x Emacs 的表示法为 M-x ,在提示处输入 clojure-jack-in ,稍候片刻,就会出现 slime repl 界面,然后我们可以输入简单的 clojure 代码进行测试和编程了。
文章结束,祝大家玩的开心。
最后的截图: 

 

 

你可能感兴趣的:(emacs,clojure)