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

时间:2022-10-22 22:48:52

为了学习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回车

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

 

 

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回车

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

 

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回车

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

 

安装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代码进行测试和编程了。

文章结束,祝大家玩的开心。

最后的截图:

 

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