作者:是远航呀 | 来源:互联网 | 2023-05-18 13:45
Emacs+Distel是目前为止开发Erlang工程最好的组合(我也是听说的,请选择性接受)。光用Editplus+ErlangSyntaxHighlightPlugi
Emacs + Distel是目前为止开发Erlang工程最好的组合(我也是听说的,请选择性接受)。光用Editplus + Erlang Syntax Highlight Plugin实在痛苦,在窗口之间不停地切来切去,调试起来也很成问题。google了一把,决定配一个Emacs + Distel的环境。配好后,基本功能试了试,挺好用,高级功能还没有用到,以后再说。
我自己的环境(这里原作者不一样)
Win7 + otp_win32_R16B02 + Emacs-23-CvsP091103-EmacsW32-1.58 + Distel 4.03
首先安装Erlang和Emacs,安装过程和一般应用软件差不多,这里略过。为避免路径中空格带来麻烦,Erlang的安装路径不要带空格(本机是D:\erl5.10.3)。
然后配置环境变量:
ERL_HOME=D:\erl5.10.3 (注:这里的斜杠是反斜杠)
PATH加入%ERL_HOME%\bin (控制面板-系统和安全-系统-高级系统设置-高级-环境变量-)
HOME=D:\erlang (这个路径配置为erlang工程的目录,本机中,环境变量名好像只能是HOME才能发挥作用)
解压缩Distel到D:\erl5.10.3\lib\distel-4.03 (这个路径随意,便于管理,将它放到erlang的lib下面)
在D:\erlang(环境变量HOME)创建一个名为“.emacs”的文本文件,内容如下:
;; Erlang mode
(setq load-path (cons "D:/erl5.10.3/lib/tools-2.6.2/emacs" load-path))
(setq erlang-root-dir "D:/erl5.10.3")
(setq exec-path (cons "D:/erl5.10.3/bin" exec-path))
(require 'erlang-start)
;; Distel
(let ((distel-dir "D:/erl5.10.3/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的配置文件。同时其它部分的斜杠可以不用改变。
再在D:\erlang(环境变量HOME)建立一个名为“.erlang.COOKIE”的文本文件,内容随意,例如:
it_is_a_secret_file
这个文件是Erlang的Magic COOKIE文件。由于Distel需要和运行的erlang节点进行通信,因此这一步不可少。
最后创建一坨Emacs的快捷方式,放在桌面或者任务栏快速启动,右击快捷方式选“属性”,将“起始位置”设为E:\erlang(HOME环境变量)。这样Emacs启动后可以直接定位到erlang工程的目录。
启动Emacs,打开一个erl文件,应该能看到多了一个“Erlang”菜单,菜单下有一个Distel的子菜单,如图:
(注:这里一定要打开一个erl文件之后才会有Erlang菜单产生。如果打开了erl文件还没有产生erlang菜单,则很可能前面的步骤出错了。)
至此,环境全部配置完成。而按照这个步骤,本机可以实现想要的配置。