Erlang开发环境的搭建(Emacs + Distel)和简单应用

 

最近花点时间了解了一下Erlang;下面综合网上的一些文章介绍一下搭建一个Emacs + Distel的环境步骤。

1. 首先安装Erlang http://www.erlang.org/download.html)和Emacs(到 http://www.gnu.org/software/emacs/ 下载emacsWindows编译版本),安装过程与一般应用软件一样。这里为了避免路径中空格带来麻烦,Erlang的安装路径中最好不要带空格 (如最好不要有:D:/Program Files/erl5.7.1这样的路径)。

2.然后配置环境变量(我的电脑->高级->环境变量->系统变量->新建):

ERL_HOME=D:/erl5.7.1

PATH变量一般情况下已存在,只需在其下面加入:%ERL_HOME%/bin即可,注意与前面的内容用”;”隔开。

HOME=E:/erlang(这个路径是配置erlang工程的目录)

解压缩DistelD:/erl5.7.1/lib/distel(这个路径本来可以随意,但是为了便于管理,建议将它放到erlanglib下面)。

E:/erlang(环境变量HOME)创建一个名为“.emacs”的文本文件,有童鞋说没法建立,用记事本当然不能建立,用之前安装好的Emacs就比较容易了:点击Emacs菜单栏:Options->任意选项;然后再选择Options下的Save Options选项;此时在E:/erlang(环境变量HOME)下创建了一个目录:”.emacs.d”和一个文档文件:” .emacs”。用Emacs打开” .emacs”文件,添加如下内容(下面的路径根据您实际的安装路径进行调整,深蓝色字体是调整的对象) 如下:
;; Erlang mode

 (setq load-path (cons  "D:/erl5.7.1/lib /tools-2.6.4 /emacs" load-path))
(setq erlang-root-dir "
D:/erl5.7.1 ")
(setq exec-path (cons "
D:/erl5.7.1 /bin" exec-path))
(require 'erlang-start)

 

;; Distel
(let ((distel-dir "
D:/erl5.7.1 /lib/tools-2.6.4 /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 modedistel的配置文件。

3.        再在E:/erlang(环境变量HOME)建立一个名为“.erlang.cookie”的文本文件(Emacs建立),内容随意。

这个文件是ErlangMagic Cookie文件。由于Distel需要和运行的erlang节点进行通信,因此这一步不可少。

 4.    最后创建一个Emacs的快捷方式,放在桌面或者任务栏快速启动,右击快捷方式选属性,将起始位置设为"E:/erlang "%HOME% "HOME环境变量)。这样Emacs启动后可以直接定位到erlang工程的目录。

启动Emacs,打开一个erl文件 ,应该能看到多了一个“Erlang”菜单,菜单下有一个Distel的子菜单 (注意:不打开一个erl文件是看不到“Erlang”菜单的。)如图:

http://hi.csdn.net/space-11077-do-album-picid-546529.html

至此,环境全部配置完成。

 

另:

刚开始用emacs,可能会被buffer吓到:打开Emacs到处都是buffer;不要介意,简单介绍一下这个吓人的buffer

其实buffer就是file。所以 ,你大可把buffer当作是file。但是叫buffer更精确。比方说你用文本编辑器编辑一个文档,我们都用New去建一个新的文档,还没存的时候就叫“未命名文档”之类的。其实此时硬盘还没将文本记录下来,怎么能叫文本?所以,emacs称之为buffer

再深入一点,buffer的名字和文本的名字通常一样,但也可以不一样。emacsbuffer可以有很多种展现模式,有些buffer还真的不准备变成档案的。

因此,buffer的含义比文本广。不过我们初学,就把buffer当文本好了。

如上所述,我刚开始被emacs吓到的就是buffer。更精确的是,我是被一开始进去出现的这些字吓到:

;; This buffer is for notes you don't want to save, and for Lisp evaluation.

;; If you want to create a file, visit that file with Cx Cf,

;; then enter the text in that file's own buffer.

其实这只是说这是个不会被储存的buffer。其实我们刚开始用,也许就是想乱打一些东西试试,也不想存储。岂不正合心意?

现在就可以试着在这个buffer里打字。你会发现,其实操作方式就是和你想的一样。用方向键就可以控制游标上下左右移动。

现在我们要编一个文档。其实上面那串吓人的英文已经告诉你了怎么做了。就是用:

Cx Cf (建立或打开新档旧档)

这里大写的C是按 Control键的意思。所以 Cx Cf就是先按Control-x,再按Control-f。这时Emacs就会叫你输入档名。你就随便叫个比方说 foo.txt或是你自己要写的档名。

打敲到一半,要存档,就是:

Cx Cs (存档)

要退出,就是:

Cx Cc (结束emacs

只要会这些,基本上可以开始用Emacs编辑Elang代码了!

需要进一步学习Emacsdistel的使用请参看一下资源的内容(当然也是网上搜集的,下载不需要积分):

http://download.csdn.net/source/2365059

http://download.csdn.net/source/333008

参考文章:

http://bc.tech.coop/blog/070528.html

http://casey-lai.appspot.com/blog/37

http://pro-cyber.javaeye.com/blog/550814

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值