Chapter 1. 編輯器 - emacs and vi

Table of Contents
簡介
emacs 快速入門
vi 快速入門
程式與編輯器
進階emacs使用
總結

簡介

基本觀念

作為一個軟體工程師第一件必須熟悉的工具就是編輯器(editor)了,不要 小看一個編輯器喔。強大的程式設計用editor可不是那麼好找的。

一個編輯器基本上你做的事情沒有正式存起來之前,都是在記憶體 內改來改去,所以這些暫時放著你的修改的區域就叫緩衝區(buffer)。 一個編輯器基本上的觀念有命令模式與編輯模式的切換。 所謂編輯模式就是你所打的東西就是這個檔案的內容,而命令模式就是你下 命令對檔案內容的操作。例如開檔,存檔,搜尋取代等動作就是下命令來達成。 所以基本上要有一個規矩在兩個模式間切換才能作事情。另外編輯有編輯 緩衝區,命令有命令緩衝區。如果有用過MS-DOS古老工具的老古董,例 如用過pe2這種東西的人就可以體會。

好的程式編輯器要有的功能除了基本的開檔存檔還大概有拼字檢查, 快速搜尋取代,indent,顯示程式語言syntax顏色,根據程式所做的游 標移動等等。

一些特殊鍵

Unix上的按鍵有一些特殊鍵,主要是一些大廠的鍵盤跟PC用的不太一樣,例如在Sun的 鍵盤上Alt鍵旁邊有個菱形的按鍵,這個就是Meta Key,編輯器有很多按鍵會用到這個 ,在PC裡面通常是用左Alt鍵來表示Meta Key,但是不要忘了在你的XFree86中的設定 XF86Config中加上這個選項。要不然一個Meta Key其實也等於一個ESC key。

emacs, vi 與unix世界

emacs 跟vi是Unix上赫赫有名的編輯器,open source的社群人士一定指明這 兩個編輯器來使用,其實有很多快速鍵及一些特殊鍵的用法都可從這邊發現。 例如在bbs上往下搜尋用"/",往上用"?"這個鍵。在pine這個mail軟體上, 按Ctrl-k就是殺掉整行等等。另外有些鍵的意義,例如"^"代表行首,"$" 代表行尾,這些鍵其實在很多Unix軟體上都是通用的,不過大致有分emacs模式 與vi模式。例如偏emacs設計的軟體,搜尋就用Ctrl-s,偏vi設計的軟體就用 "/"。 但也有像bash,它可以下兩種模式, set -o vi或者set -o emacs,每一行在提示符號下就是好像是在編輯器中的 一行。如果是set -o vi,則用vi的回到上一行的方法,按ESC 再按k, 就可以取回上個命令。如果是set -o emacs則用emacs的回到上一行的方法, Ctrl-p或者方向鍵up,就可以取回上個命令。 不管怎樣,學這兩個是百利而無一害的。