Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5009183
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2012-08-08 17:33:05

一、 运行环境配置
1.安装依赖
 yum groupinstall Base "Development Tools" "Perl Support" 
 sudo yum install gcc glibc-devel make ncurses-devel openssl-devel autoconf
 yum install unixODBC unixODBC-devel
2.下载解压、配置、编译、安装
    cd /opt/  
    wget
    tar -zxvf otp_src_R15B.tar.gz  
    cd otp_src_R15B01
    ./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac --with-opengl --enable-debug -enable-unicode
    make
    make install
    注意:hipe:支持Erlang编译成本地代码。好处:提高Erlang虚拟机执行代码性能。
 --with-opengl --enable-debug -enable-unicode
 让Erlang能够使用wxWidgets
 
3. 完成之后,设置环境变量
    vim /etc/profile
 ERL_HOME=/usr/local/erlang  
 PATH=$ERL_HOME/bin:$PATH  
 export ERL_HOME PATH 
   保存
4. source /etc/profile
 让环境变量立即生效

5.安装文档
wget -c
tar zxvf /usr/local/src/otp_doc_man_R15B.tar.gz -C /usr/local/erlang/lib/erlang
注意:解压路径为 安装目录/lib/erlang
获取命令帮助
 erlang -man erl 
 # 获取模块帮助信息 
 erlang -man 模块名
 
二、配置Emacs与erlang结合
1. 直接用yum 安装emacs
 yum install emacs-nox //这样会将相关联的emacs-coomon包也安装上
 find / -name '.emacs'
 // 将.emacs 文件copy 到 ~/ 目录下
 cp /etc/skel/.emacs ~/
       
        安装distel
        cd /usr/local/erlang/lib/erlang/lib/
        wget
        tar -xzf distel-4.03.tgz
       
        安装linum
        cd /usr/local/erlang/lib/erlang/lib/tools-2.6.6.6/emacs
 wget -c
2.编辑 ~/.emasc
    vim ~/.emasc
    在最后加入:


  1. (add-to-list 'load-path "/usr/local/erlang/lib/erlang/lib/tools-2.6.6.6/emacs")        
  2. (require 'erlang-start)

  3. (require 'linum)
  4. (global-linum-mode 1)

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

  7. (setq erlang-root-dir "/usr/local/erlang")
  8. (add-to-list 'exec-path "/usr/local/erlang/bin")
  9. (setq erlang-man-root-dir "/usr/local/erlang/lib/erlang/man")

  10. ;; This is needed for Distel setup
  11. (let ((distel-dir "/usr/local/erlang/lib/erlang/lib/distel-4.03/elisp"))
  12. (unless (member distel-dir load-path)
  13. ;; Add distel-dir to the end of load-path
  14. (setq load-path (append load-path (list distel-dir)))))

  15. (require 'distel)
  16. (distel-setup)

  17. ;; Some Erlang customizations
  18. (add-hook 'erlang-mode-hook
  19. (lambda ()
  20. ;; when starting an Erlang shell in Emacs, default in the node name
  21. (setq inferior-erlang-machine-options '("-sname" "emacs"))
  22. ;; add Erlang functions to an imenu menu
  23. (imenu-add-to-menubar "imenu")))

  24. ;; A number of the erlang-extended-mode key bindings are useful in the shell too
  25. (defconst distel-shell-keys
  26. '(("\C-\M-i" erl-complete)
  27. ("\M-?" erl-complete)
  28. ("\M-." erl-find-source-under-point)
  29. ("\M-," erl-find-source-unwind)
  30. ("\M-*" erl-find-source-unwind)
  31. )
  32. "Additional keys to bind when in Erlang shell.")

  33. (add-hook 'erlang-shell-mode-hook
  34. (lambda ()
  35. ;; add some Distel bindings to the Erlang shell
  36. (dolist (spec distel-shell-keys)
  37. (define-key erlang-shell-mode-map (car spec) (cadr spec)))))


  38. (setq default-frame-alist
  39. '((top . 50) (left . 100)
  40. (width . 95) (height . 35)
  41. (cursor-color . "blue" )
  42. (cursor-type . box)
  43. (foreground-color . "green" )
  44. (background-color . "black" )
  45. ))
  46. (show-paren-mode)
  47. (global-font-lock-mode t)
三 :进入erlang工作环境
// 启动 emacs
# emacs
输入 M-x erlang-mode 切换到erlang模式
四 : Emacs 常用命令 ( 原文地址:http://publishblog.blogchina.com/blog/tb.b?diaryID=1960863
常用的命令如下(注意emacs的习惯,C-x 表示同时按住Ctrl和x,M-x表示先按Esc再按x,C-x v l表示同时按住Ctrl和x后,松开Ctrl再分别按v和l,C-x C-f表示按住Ctrl同是分别按x和f,命令说明是大小写敏感的):
1) Buffer相关。emacs可以同时打开多个文件,每一个文件是一个buffer。
在X下可以用C-mouse1来选择当前活动哪个buffer
C-x C-b 可以得到一个buffer列表并从中选择哪个buffer打开
C-x C-f 打开一个文件
C-x i 在打开的buffer中插入一个文件内容
C-x k 关闭当前buffer中的文件
C-x C-s 保存当前buffer
C-x C-w 另存为
C-x s 保存所有buffer
2) 屏幕分割相关,emacs可以在同一个窗口中看到多个buffer。
C-x 2 垂直分割当前子窗口
C-x 3 水平分割当前子窗口
C-x 1 当前窗口独占窗口空间
C-x o 活动子窗口切换到另外一个子窗口
3)编辑相关
插入/覆盖模式切换
M-x overwrite-mode是用来转换 insert mode 与 overwrite mode
重复操作:数值引数适用於所有 EMACS 的指令。它的用途可分成 以下数类:
对某一指令做重复执行的动作
用法: C-u n command 或 M- n command
如:C-u 4 r 在buffer中输入4个r
C-u 4 C-u 5 在buffer中输入4个5(重复输入数字要注意有两个C-u)
删除-deletion
C-d 向后删除一个字元
删除-killing(剪切)
在 EMACS 中所谓的 killing 是指将文件从目前的缓冲区移到一个称为kill-ring kill-ring为一个变数的地方去。文件在缓冲区中是消失了, 但却储存在 kill-ring ,variable这一个变数中。 EMACS 可以有许多的缓冲区,但却只有一个 kill-ring 的储存变数。 也就是说,多个缓冲区彼此共享一个 kill-ring,而且也只有一个 kill-ring。 EMACS 所设计共享的 killing-ring 的用意是让被遗弃的文件可以找回,而且各缓冲区彼此也可借由killing-ring 来建立一个互通的管道。所谓的互通就是把甲缓冲区的东西给乙,反之,也可把乙缓冲区的东西给甲。此模式在 EMACS 中就是透过 killing-ring 来完成。 因此,想从甲缓冲区中得到某些文件给乙缓冲区,只要将甲缓冲区的文件放入 kill-ring 中,乙缓冲区就可以至此共享的 kill-ring 中将文件取出。如此一来,就可以共享资了。要查看kill-ring中的内容,1. 键入 “Ctrl-h v” 後, echo area 处会出现:2. 在Describevariable:後输入变数的名称, EMACS 会另开一个视窗来显示此变数的值。此时所要键入的变数名为 “kill-ring”
C-k 删除(剪切)一行
C-x C-o 删除(剪切)光标所在位置后面的空白行
拷贝与粘贴
区域标记:设定区块的步骤如下所示:
1. 设定区块的始位置,也就是所谓的标记( mark)。
2. 可使用 “ Ctrl-@” 或 “ Ctrl-SPC”或M-x set-mark-command任一个指令来设定标记。
3. 设定区块的终结位置,也就是移动游标至区块的尾端。
在标记与 point之间的范围就是所谓的区块。
M-@ 开始标记区域用于拷贝
M-w 拷贝当前mark的区域
C-w 将当前mark的区域剪切到内存
C-y 在当前位置粘贴剪贴板的内容
C-y M-y 即如果在粘贴命令后根一个M-y,则切换剪贴板的内容,可以有多个M-y
C-x u undo功能(好象没有redo)
Ctrl-x Ctrl-p(mark-page)
Ctrl-x Ctrl-l(downcase-region)使区域变成小写
Ctrl-x Ctrl-u(upcase-region)使区域变成大写
Meta-x fill-region
Meta-x print-region
替换
M-x replace-string RET 旧字串 RET 新字串 RET(不征询意见)
M-x query-string RET 旧字串 RET 新字串 RET (征询意见)
4)C-g 取消键入的指令
5)在线帮助
Ctrl-h c与 Ctrl-h k’的功能相似, 二者都是在寻求与 Hotkey有关的讯息。二者唯一的差别,就在於对指令的解释详细与否而已。
C-h a 和C-h w可让使用者键入任意的子字串,都可以找到 相对应的指令。使用 Ctrl-h a 所键入的子字串,并不限於指令的第一个字元, 而 Ctrl-h w 则必需以指令的第一个字为起始字。使用 Ctrl-h a,可给予指令中任何位置的子字串。Ctrl-h a 无法使用 completion,而 Ctrl-h w可使用 completion。
C-h i 活着M-x info查看帮助info
d 运行Ctrl-h i 指令,会先进入 info 树状结构的根部。任何情况下, 可键入 “d” 回到此根

m MenuName 直接移动到指定的Menu上
n 将结点移至下一个与此结点相连的结点。
p 将结点移至上一个与此结点相连的结点。
u 将结点移至上一层的结点。

阅读(1720) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~