Erlang开发环境Windows + Emacs + Distel的配置
(setq erlang-root-dir "E:/erl5.6.5")
(setq exec-path (cons "E:/erl5.6.5/bin" exec-path))
(require 'erlang-start)
;; Distel
(let ((distel-dir "E:/erl5.6.5/lib/distel-4.03/elisp"))
? (unless (member distel-dir load-path)
??? (setq load-path (append load-path (list distel-dir)))))
(require 'distel)
(distel-setup)
;; Some Erlang customizations
(add-hook 'erlang-mode-hook
? (lambda ()
? ;; when starting an Erlang shell in Emacs, default in the node name
??? (setq inferior-erlang-machine-options '("-sname" "emacs"))
??? ;; add Erlang functions to an imenu menu
??? (imenu-add-to-menubar "imenu")))
;; A number of the erlang-extended-mode key bindings are useful in the shell too
(defconst distel-shell-keys
? '(("\C-\M-i"?? erl-complete)
??? ("\M-?"????? erl-complete)?
??? ("\M-."????? erl-find-source-under-point)
??? ("\M-,"????? erl-find-source-unwind)?
??? ("\M-*"????? erl-find-source-unwind)?
??? )
? "Additional keys to bind when in Erlang shell.")
(add-hook 'erlang-shell-mode-hook
?? (lambda ()
???? ;; add some Distel bindings to the Erlang shell
???? (dolist (spec distel-shell-keys)
?????? (define-key erlang-shell-mode-map (car spec) (cadr spec)))))
????别忘记将以上路径更换为自己实际的路径。注意路径分隔符是正斜杠“/”而不是反斜杠“\”。这样emacs启动时可以自动加载erlang mode和distel的配置文件。
????再在E:\erlang(环境变量HOME)建立一个名为“.erlang.cookie”的文本文件,内容随意,例如:
it_is_a_secret_file
????这个文件是Erlang的Magic Cookie文件。由于Distel需要和运行的erlang节点进行通信,因此这一步不可少。
????最后创建一坨Emacs的快捷方式,放在桌面或者任务栏快速启动,右击快捷方式选“属性”,将“起始位置”设为E:\erlang(HOME环境变量)。这样Emacs启动后可以直接定位到erlang工程的目录。
????启动Emacs,打开一个erl文件,应该能看到多了一个“Erlang”菜单,菜单下有一个Distel的子菜单,如图:
