`
zhongwencool
  • 浏览: 28474 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

安装erlang开发环境++emacs

阅读更多

1.下载erlang最新版本: http://www.erlang.org/download.html

 我用的是 Erlang/OTP R15B02
1)tar  -xzvf  otp_src_R15B02.tar.gz
2) 按照INSTER.md中的说明一步步安装好;(检查环境,配置,编译工具....) ./configure
      By default, Erlang/OTP will be installed in `/usr/local/{bin,lib/erlang}`.
     To instead install in `<BaseDir>/{bin,lib/erlang}`, use the
      `--prefix=<BaseDir>` option.
3) make make install
4)安装好前把老版本先干掉,装好后,记得设置PATH;
5)最后在shell中用erl出现如下:
恭喜你成功了。
 
2.下载emacs最新版本:http://www.gnu.org/software/emacs/
同理:安装好emacs吧。我安装了30分钟(要有耐心哦,太慢了)

 1)erlang_mode package commes with erlang distribution;
 2)安装erlang_mode,只要装了完整的erlang,就会用的,只是要自己使生效,在.emacs中:
(add-to-list 'load-path ".....")
(require 'erlang-start)

(add-to-list 'auto-mode-alist '("\\.erl?$" . erlang-mode))
(add-to-list 'auto-mode-alist '("\\.hrl?$" . erlang-mode))

(setq erlang-root-dir "/opt/local/lib/erlang")
(add-to-list 'exec-path "/opt/local/lib/erlang/bin")
(setq erlang-man-root-dir "/opt/local/lib/erlang/man")
3)我们也可以定义自己的启动shell
     (defun my-erlang-mode-hook ()

        ;; 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")
        ;; customize keys
        (local-set-key [return] 'newline-and-indent)
        )
;; Some Erlang customizations
(add-hook 'erlang-mode-hook 'my-erlang-mode-hook)
4)erlang提供了我们一系列的命令来写代码,(导向,代码编写,和缩进..)navigation, code editing & indenting.
4.1)C-c C-j --(插入一个新的函数)erlang-generate-new-clause to insert new clause in current point — this command takes name of function from previous clause,
接着有个吊一点的命令:建了一个相同的函数(是不是没有参数,用下C-c c-y,神奇的一下就是一样的函数了);
4.2)会区分erlang中的;与enter,这个谁用谁知道:就是打;会跳到下个分支,enter会到下一行;
4.3)c-c c-q对齐一个Function.Tab会对齐一行;对齐全buffer没有bond,要自己设置erlang-indent-current-buffer.
4.4)c-h mark 一个函数哦(这个不要用,与help有冲突。C-M-h 也是(这个准一点,推荐)方便。
4.5)C-c C-C用于注释,C-c C-u解除注释;----不要和c-x c-u搞错了,这个是撤消,不是erlang_mode的。
4.6)M-q:这个只对注释用,会让注释更+readable的
4.7)C-a M-a会跳到函数的开头,c-a M-e会到函数的结尾; C-M-a中到上一个clause,C-M-e中到下一个clause
4.8)代码补全:通用模块会gen_server,case if 什么 的会。其它要配置了。

4.9)c-c c-z打开erl c-c c-l看打下的shell发生了什么,c-c c-k打开shell并编译当前文件(这个最后不要用,自己定义行为的好)。

4.10)编译的太麻烦了,还不实用,还不如自己定义。

Compilation and work with erl

User can execute Erlang's commands interactively using erl process running in the Emacs's buffer (process is running with comint, so user can use standard commands of this package, for example, navigation through history of commands with M-p & M-n keys). This process is also used by erlang-mode to compile source code.

To run new erl process, user can use the erlang-shell command, but it will implicitly run when user run compilation of source code, or try to switch to *erlang* buffer with erlang-shell-display command (C-c C-z).

Compilation and loading of compiled code is performed with erlang-compile command (C-c C-k). If user gives prefix argument to this command, then compilation will performed with options debug_info & export_all. To view compilation results, user can run erlang-compile-display command (C-c C-l). To move between errors, the erlang-next-error command (C-x `) is could be used. In this case, if you want to move to first error, you need to give prefix argument to this command, for example with C-u C-x `.
还有很多很多的mode,比如:只是行为不同,特定于一定的项目,(可以自己定义项目中的各种行为哦)

erlware-mode package is replacement for erlang-mode, using it as a base, but adding following new functionality:

  • code templates are changed — now they contain information for edoc utility;
  • started work on the integration with Sinan & Faxien projects, that allows to make installation & maintenance of Erlang's packages more easy.
  • Execution of basic commands also not differs from execution of the erlang-mode commands. Description of new commands will added in future, as they will released.
5)好了,接下来搞个强大点的:传说的distel,http://code.google.com/p/distel/
 dister  is a library in Emacs Lisp, that allows to write Emacs code in distributed style, and also allows to communicate with code, written in Erlang. This allows to implement set of commands, not existing in erlang-mode, that allow  to perform following tasks:就是不能在erlang-mode中没有的,又要用的功能了。
  • 找函数定义和文档;search for function's definitions & access to actual documentation;
  • 不懂..)module's & function's names completion, using actual information from Erlang environment;
  • 直接评价代码;direct evaluation of the code snippets;
  • base support for source code refactoring(重构);
  • debugging of Erlang programs;
  • display information about Erlang processes and work with them;
  • code profiling(分析).
5.1)安装distel(这个要下载的哦,http://code.google.com/p/distel/)。
To install package, you need to download it from the project's site and unpack it into selected place, and than add following code into initialization file
(add-to-list 'load-path "~/emacs/distel/elisp")
(require 'distel)
(distel-setup)
为了更好的定义,给个通用的参照吧。
;; 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)))))
这个模式和elang的环境有很大关系,第一次要输入节点什么的。
that some of them requires running Erlang environment, and when you'll execute them first time, they will ask you for a name of the node, that will be used to get all necessary information. User can switch between nodes with the erl-choose-nodename command(C-c C-d n). And for checking availability of the concrete node the erl-pingcommand(C-c C-d g) could be used. The command will ask you for name of the node, and if it available, it will load to node all modules are needed to work with distel. Name of the current node is displayed in the status line.
PS:
distel还可以启动debugger,i不过我觉得没什么用,不好玩。也玩不来,算了吧。
c_c c+d l erl-process-list 打开连接node的进程结构,可以看到,够强大
  • 大小: 75.6 KB
  • 大小: 23.8 KB
分享到:
评论

相关推荐

    erlang emacs开发环境

    erlang的emacs环境搭建,其实网上有好多教程,下载地址也有,我这个是把需要的软件下载好了的,并且配置好了的,主要是方便不能下载软件的朋友。 包括.emacs.d .emacs .erlang.cookie distel-4.03.tgz Emacs-23-CvsP...

    Erlang开发环境搭建

    本文将指导读者如何在Windows平台下搭建Erlang开发环境,包括安装Erlang OTP、Emacs W32、Distel等工具,并配置Erlang mode和Distel。 一、安装Erlang OTP Erlang OTP是Erlang的官方实现,提供了完整的开发环境。 ...

    erlang环境搭建

    6. **启动Emacs**:完成上述配置后,启动Emacs,你就可以享受Erlang的高效开发环境了。 ### Linux下环境搭建 在Linux环境下,Erlang的安装通常通过包管理器完成,如`apt-get`(Ubuntu/Debian)、`yum`(CentOS/...

    erlang环境配置借鉴.pdf

    为了更好地使用 Erlang,需要配置一个良好的开发环境。本文将 introduce 一种使用 Emacs for Windows 配置 Erlang 环境的方法,包括安装、配置和插件的安装等方面。 首先,需要下载最新版本的 Emacs for Windows 并...

    erlang环境配置[定义].pdf

    在Windows环境中配置Erlang开发环境通常涉及安装编辑器、配置相关插件以及设定路径,以便实现代码编辑、调试和交互功能。 在描述中提到,用户原本使用的是Netbeans和ErlyBird组合,但由于Netbeans升级导致ErlyBird...

    21天erlang

    通过这份文档提供的信息,初学者可以了解如何从零开始搭建Erlang的开发环境,以及如何使用Erlang Shell和Emacs来编写、编译和运行Erlang程序。文档中的知识点设计得非常基础,以确保初学者在没有任何预备知识的情况...

    distel 配置方法

    本文将详细介绍如何配置Distel,以便在Erlang开发环境中获得最佳体验。 1. **安装Emacs编辑器** 在开始配置Distel之前,确保已经安装了Emacs。Emacs是Distel的基础平台,可以从其官方网站下载适用于各自操作系统的...

    distel配置相关文档

    Distel是一款用于Erlang开发的集成开发环境(IDE)插件,它提供了在Emacs中的代码编辑、调试和测试功能。对于Erlang开发者来说,Distel是提高效率和便利性的必备工具。本文将详细介绍如何配置和使用Distel,以便在...

    ivy-erlang-complete:ivy-erlang-complete是erlang的上下文相关完成,无需连接到erlang节点

    在Erlang开发中,拥有一个高效且智能的代码补全工具是非常重要的,因为它可以帮助开发者快速理解和引用大量的Erlang模块、函数和宏。ivy-erlang-complete就是这样的工具,它通过分析已有的源代码文件来提供补全建议...

    dot-emacs-setup-guide-for-erlang-and-elixir

    这个设置指南是将变成一个(某种)完整的和开发环境的建议集合。 它不像那样是一个完整的解决方案,而是显示了用于设置您的环境的各种选项。 唯一的先决条件是您的系统上安装了以下组件: 版本 24.3、24.4、24.5 ...

    Distel-开源

    Distel是开源软件项目,它将Emacs Lisp与Erlang的强大功能相结合,为Emacs用户提供了一套完整的Erlang开发环境。这个项目的核心在于它实现了Emacs与Erlang的紧密集成,允许开发者在Emacs这个强大的文本编辑器中进行...

    erlstack-mode:次模式,用于预览出现在Erlang堆栈跟踪中的代码

    5. **自定义配置**:erlstack-mode 可以根据个人喜好进行定制,例如改变高亮颜色、调整快捷键等,以适应不同的开发环境和习惯。 ### 使用EmacsLisp erlstack-mode 是用EmacsLisp编写,这是一种强大的脚本语言,用于...

    mix-format.el:Emacs软件包,用于使用elixir-mode格式化Emacs中的Elixir代码

    在Elixir编程语言的开发环境中,Emacs同样扮演着重要的角色。"mix-format.el"就是这样一个专门为Elixir开发者设计的Emacs插件,它允许用户在Emacs中便捷地对Elixir代码进行格式化,以保持代码的整洁和一致性。 ...

    ESense-开源

    要使用 ESense,首先需要确保已经安装了 Emacs 和 Erlang 的开发环境。然后,可以使用 Emacs 的包管理器(例如 MELPA 或 ELPA)来安装 ESense。在 Emacs 中打开包管理器,搜索 ESense 并按照提示进行安装。安装完成...

    点文件:我的(半)识字的点文件,用于Nix,Emacs,鱼等,由家庭经理和GNU Stow管理

    点文件在IT行业中通常指的是用户配置文件,它们以点(....综上所述,这个压缩包中的 `dotfiles-main` 文件很可能包含了使用上述工具和技术的配置示例,通过这些点文件,你可以了解到如何有效地管理和定制你的开发环境。

    pm代码matlab-HelloWorld:HelloWorldforcommondeveloplanguages.各开发语言的HelloWo

    是微软开发的在服务器端脚本环境 .aspx ASPX 是微软的在服务器端运行的动态网页文件 .bat dos下的批处理文件 .c C 语言源文件 .cc C++ 源文件 .clj Clojure 语言(JVM上的一种语言,其语法是Lisp格式) .cpp C++ ...

    pythonchallenge level2官方方法集

    意外地使用Emacs作弊,Emacs是一款高度可定制的文本编辑器,这里可能是指在编辑代码或处理文本时不小心利用了Emacs的一些高级功能。 #### 56. Having fun with Mono 与Mono一起玩乐,Mono是一个开源项目,旨在提供...

    Coders at work

    Joe Armstrong是Erlang编程语言的发明人之一,Erlang以其出色的并发处理能力而闻名,被广泛应用于电信系统和其他需要高可用性的场景中。 #### Simon Peyton Jones Simon Peyton Jones是Haskell编程语言的主要推动者...

    WINIO模拟类

    **文件名解析:** "_模块_WINIO模拟类.ec" 这个文件名可能表示这是一个关于WINIO模拟类的源代码文件,".ec"可能是某种特定的编程语言扩展名,如Erlang或Emacs Lisp,但具体取决于上下文环境。由于没有提供更多的文件...

    codeclimate-credo:代码气候Credo引擎

    5. **集成开发环境(IDE)支持**:Credo可以与其他开发工具如VSCode、Vim、Emacs等集成,提供实时反馈。 6. **命令行接口**:通过简单的命令行界面,开发者可以轻松地运行Credo分析,并获取详细的报告。 **使用方法...

Global site tag (gtag.js) - Google Analytics