這篇文章對Erlang + Emacs + Distel 的配置講得非常的詳細,但沒有相關的軟體下載超連結,我對它稍微做了點修改。比如我用的是最新的軟體安裝版本等。所以我就冒犯作者也把它拿來和大家分享一下,以便節省時間。
Emacs + Distel是目前為止開發Erlang工程最好的組合(我也是聽說的,請選擇性接受)。光用Editplus + Erlang Syntax Highlight Plugin實在痛苦,在視窗之間不停地切來切去,調試起來也很成問題。google了一把,決定配一個Emacs + Distel的環境。配好後,準系統試了試,挺好用,進階功能還沒有用到,以後再說。
我的環境:
Windows XP Pro SP2 + Erlang win32_R13B01 + EmacsW32-1.58 + distel-2009.03.06
1. 首先安裝Erlang和Emacs,安裝過程和一般應用軟體差不多,這裡略過。為避免路徑中空格帶來麻煩,Erlang的安裝路徑不要帶空格 (如E:/erl5.7.2)。
2. 然後配置環境變數:
ERL_HOME=E:/erl5.7.2 PATH加入%ERL_HOME%/bin
HOME=E:/erlang(這個路徑配置為erlang工程的目錄)
解壓縮Distel到E:/erl5.7.2/lib/distel-2009.03.06(這個路徑隨意,便於管理,將它放到erlang的lib下面)
在E:/erlang(環境變數HOME)建立一個名為“.emacs”的文字檔,內容(下面的路徑根據你實際的安裝路徑進行調整,深藍色字型是調整的對象) 如下:
;; Erlang mode<br />(setq load-path (cons "E:/erl5.7.2/lib /tools-2.6.4 /emacs" load-path))<br />(setq erlang-root-dir "E:/erl5.7.2 ")<br />(setq exec-path (cons "E:/erl5.7.2 /bin" exec-path))<br />(require 'erlang-start)</p><p>;; Distel<br />(let ((distel-dir "E:/erl5.7.2 /lib/tools-2.6.4 /elisp"))<br /> (unless (member distel-dir load-path)<br /> (setq load-path (append load-path (list distel-dir)))))<br />(require 'distel)<br />(distel-setup)</p><p>;; Some Erlang customizations<br />(add-hook 'erlang-mode-hook<br /> (lambda ()<br /> ;; when starting an Erlang shell in Emacs, default in the node name<br /> (setq inferior-erlang-machine-options '("-sname" "emacs"))<br /> ;; add Erlang functions to an imenu menu<br /> (imenu-add-to-menubar "imenu")))<br />;; A number of the erlang-extended-mode key bindings are useful in the shell too<br />(defconst distel-shell-keys<br /> '(("/C-/M-i" erl-complete)<br /> ("/M-?" erl-complete)<br /> ("/M-." erl-find-source-under-point)<br /> ("/M-," erl-find-source-unwind)<br /> ("/M-*" erl-find-source-unwind)<br /> )<br /> "Additional keys to bind when in Erlang shell.")<br />(add-hook 'erlang-shell-mode-hook<br /> (lambda ()<br /> ;; add some Distel bindings to the Erlang shell<br /> (dolist (spec distel-shell-keys)<br /> (define-key erlang-shell-mode-map (car spec) (cadr spec)))))</p><p>
別忘記將以上路徑更換為自己實際的路徑 。注意路徑分隔字元 是正斜杠“/” 而不是反斜線“/”。這樣emacs啟動時可以自動載入erlang mode和distel的設定檔。
3. 再在E:/erlang(環境變數HOME)建立一個名為“.erlang.cookie”的文字檔,內容隨意,例如:
it_is_a_secret_file
這個檔案是Erlang的Magic Cookie檔案。由於Distel需要和啟動並執行erlang節點進行通訊,因此這一步不可少。
4. 最後建立一個Emacs的捷徑,放在案頭或者工作列快速啟動,右擊捷徑選“屬性”,將“起始位置”設為"E:/erlang ”或"% HOME% "(HOME環境變數)。這樣Emacs啟動後可以直接定位到erlang工程的目錄。
啟動Emacs,開啟一個erl檔案 ,應該能看到多了一個“Erlang”菜單,菜單下有一個Distel的子功能表 (注意:如果不開啟一個erl檔案是看不到“Erlang”菜單的。我就因為這個以為沒有安裝成功,浪費了2個小時。哎,沒仔細看內容啊!) ,
至此,環境全部配置完成。
以下是不錯的參考文章:
Bill Clementson's Blog:Distel = Emacs erlang-mode++(內容提到在Emacs視窗中如何開啟Debugger視窗)http://bc.tech.coop/blog/070528.html