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代碼進行測試和編程了。

文章結束,祝大家玩的開心。

最后的截圖:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM