Emacs入門(轉)

post0發表於2007-08-11
Emacs入門(轉)[@more@]

Emacs本質上是個相當難用的程式.甚至很少有人能知道如何從Emacs退出,

更別說怎麼使用了.在這篇文章裡我不準備介紹設定emacs的方法,因為那是一項

我也沒能掌握的高超技術.

我假設你已經安裝了emacs.在命令提示符下,鍵入:

emacs

Emacs將啟動並出現scratch緩衝區,scratch緩衝區僅僅用於寫入一些不打算

儲存的東西.所以我們必須在啟動emacs時從命令列給它一個檔名.要做到這一點,

我竅紉?順鰁macs(當然也可以按C-x C-f,再輸入檔名,建立一個與檔案相關聯

的緩衝區).按C-xC-c(按住CTRL鍵,然後按x接著按c),就可以退出了.現在,我們啟

動 emacs並帶一個檔名:

emacs bork.txt

螢幕看起來是這個樣子:

Buffers Files Tools Edit Search Mule Help

----:---F1 bork.txt (Text)--L1--All-----------------------------------

(New file)

現在來看看位於底部的狀態列.它顯示了我們要處理的檔名,告訴我們使用

的是Text模式(關於emacs的模式後面有更多的介紹),現在位於第恍?並且整個檔案

都被顯示了.下面的例子是我螢幕上的狀態列,看看當編輯一個有內容的檔案時是

什麼樣子:

----:**-F1 emacs.html(HTML)--L59--70%----------------------------------

兩個*號表示,自從我上次儲存,檔案已被改動過了;我編輯的檔案叫

emacs.html,emacs在使用其HTML模式;游標位於59行,目前位置是檔案總長的 70%.

現在向空檔案bork.txt輸入一些文字,注意**號及行數.現在儲存你的大作!按

C-xC-s(就是按下CTRL,然後按x接著按s).這時底部會出現

Wrote /home/paul/bork.txt

你已經儲存了你的作品!我們退出emacs並在重新啟動它時帶上我們的文字檔案

名.你可以確認檔案已經被儲存.以上就是你和emacs打交道所需的最基本知識,現在

繼續前進...

--------------------------------------------------------------------------------

一些特殊模式

Emacs帶有一個內建的LISP語言直譯器,所以可以透過對emacs程式設計完成各種各

樣的任務.這使它能恰當地處理HTML,SGML,shell指令碼,C程式碼,texinfo和TeX原始檔,

等等.對一個可程式設計計算器常做的事情就是為它們寫遊戲,這也差不多就是對一個像

emacs這樣的可程式設計文字編輯器所要做的.emacs有一個LISP版的Eliza,這是一個經典

的仿人工智慧程式.在這裡它被設計成一個心矸治黽?我們以下的內容需要一點小技

巧,因為執行這些模式的標準鍵叫"Meta"鍵.PC沒有專門的Meta鍵,所以通常被對映到

某一個ALT鍵或CTRL鍵.(按一下ESC鍵也會起到M-的作用,在我的機器上X下的emacs把

win95鍵對映成了Meta--譯者注).按M-x,先試試左右ALT鍵,然後試試左右 CTRL鍵,當

你按了正確的鍵時,底部顯示欄將出現M-x,後面是游標.現在鍵入doctor ,按enter.

你的螢幕上將出現如下文字:

I am the psychotherapist. Please, describe your problems. Each time

you are finished talking, type RET twice.

接下去你可以和醫生聊一會兒.還是挺有趣的...

這麼快就回來了?確實,聊上一段時間就會覺得乏味...既然你已經回來了,我們

將寫一些C程式碼,來看看使用emacs的好處.我想讓你啟動emacs,編輯~/.emacs檔案.

在這個檔案裡寫入下面內容:

(add-hook 'c-mode-common-hook

'(lambda () (c-toggle-auto-state 1)))

第一眼看上去似乎不知所云.這實際就是LISP程式碼.看到它們你就會明白為什麼

有人嘲笑地說LISP的意思就是"許多惱人的,多餘的括號"(Lots of Irritating

Superfluous Parentheses. ).幸運的是你現在還不必學習 LISP,儘管要對emacs做

大量設定工作時你必須要學(上面這幾行的意思也很簡單,當emacs切換到C模式時,

將執行c-mode-common-hook這個hook變數所規定要執行的一系列函式,add-hook把一

個新函式加入這個hook,這樣當emacs使用C模式時,執行(c-toggle-auto-state 1),

能在你輸入程式時,把換行符自動插在括號,分號,冒號等特殊字元的後面.Emacs在

編輯以.c結尾的檔案時會自動使用C模式,也可以肕-x加模式名切換到指定模式--譯

者注).儲存這個檔案,然後啟動emacs編輯一個叫 foo.c的檔案

輸入以下內容:

#include

main(){printf(" Hello. ");}

和在這裡看到的不太一樣,對嗎?注意一下emacs是如何自動地在合適的位置縮排

編排程式碼,並且提醒你括號的匹配.如果你不用C程式設計,你將體會不到這有多棒(進入C模

式後,按C-h 再按m,將出現對當前模式的描述和一系列有用的快捷鍵.您 可以發現按

C-c C-a同樣可以啟動c-toggle-auto-state,其標誌就是在狀態列中出現 (C/a)--譯

者注).相信我,如果你需要寫大量程式碼,它正是你想要的!

Emacs為HTML,SGML,甚至純文字都有類似的相應模式.它可以讀e-mail,news,瀏覽

web.Emacs包羅永珍,各種工具一應俱全.閱讀一下文件,使用它,逐漸地emacs就會在你

手中發揮出它的全部威力.

更多的資訊:

按C-h t,閱讀emacs自帶的聯機教程

按C-h i,閱讀info檔案

按C-h F,看看emacs的FA

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945103/,如需轉載,請註明出處,否則將追究法律責任。

相關文章