歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下Erlang+Emacs環境的搭建

Linux下Erlang+Emacs環境的搭建

日期:2017/2/28 16:30:42   编辑:Linux教程
環境:CentOS 5.3 32位
安裝包: otp_src_R14A.tar.gz , otp_doc_man_R14A.tar.gz 下載地址( http://www.erlang.org/download.html)
emacs-common-21.4-20.el5
emacs-nox-21.4-20.el5
一:包的安裝
// 直接用yum 安裝emacs
# yum install emacs-nox //這樣會將相關聯的emacs-coomon包也安裝上

# mkdir /usr/src/download
# cd /usr/src/download
將 otp_src_R14A.tar.gz , otp_doc_man_R14A.tar.gz 這二個包放在此目錄
# gunzip -c otp_src_R14A.tar.gz | tar xfp - 解壓目錄
# cd otp_src_R14A
# ./configure --prefix=/usr/local/erlang
# make && make install

// 在configure的過程中可能會提示缺少包 curses 解決方法是安裝 ncurses-devel

yum install ncurses-deve
// 安裝好測試
# ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl
# erl
Erlang R14A (erts-5.8) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.8 (abort with ^G)
1> io:format("Hello World!\n").
Hello World!
ok
2>

二 配置Emacs與erlang結合
find / -name '.emacs'
// 將.emacs 文件copy 到 ~/ 目錄下
cp /etc/skel/.emacs ~/
// 編輯 ~/.emacs 文件
在最後添加
(add-to-list 'load-path "/usr/local/erlang/lib/erlang/lib/tools-2.6.6/emacs")
(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 "/usr/local/erlang")
(add-to-list 'exec-path "/usr/local/erlang/bin")
(setq erlang-man-root-dir "/usr/local/erlang/man") //解壓縮文件 otp_doc_man_R14A.tar.gz 將釋放出 的man 文件 對應放到這個目錄下
保存
這樣emacs 已經支持erlang mode了

三 :進入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 將結點移至上一層的結點。

更多關於Erlang的詳細信息,或者下載地址請點這裡

Copyright © Linux教程網 All Rights Reserved