總結

其他編輯相關工具

有用的外部小命令

indent

GNU的indent內定當然用它們的emacs縮排的方式,不過也可以用 K & R的與TAB是8個空白的
$ indent -kr -i8 xxx.c
		
就好了。當然還有其他的indent,例如Solaris的indent編起來就跟Linux 都不一樣。

lint

lint是一種檢查c程式語法對不對的工具,例如變數宣告了不用,cast不夠嚴格等等。 像我們公司跟HP有合作,HP的lint如果通不過,HP就不會收這個程式。 所以這是很重要的程式工具之一。
$ lint xxx.c
		
各家有各家的lint,Linux上也有很多免費的lint。可以用package搜尋找一下。

ispell

拼字檢查,寫文件最後總要檢查檢查有沒有錯字,在emacs裡按M-$ 可以檢查游標所在的字。如果錯了,會顯示建議字,然後按0,1,2... 來選擇。其實這是一個外部程式,在命令列中打ispell也可以。

enscript

印程式檔案出來可以用enscript這個工具,他會把兩頁印成一頁, 變成一個postscript檔, 如果有雷射印表機,就直接輸出到印表機就好了。 加行號可以用
$ nl -ba xxx.c > xxxx.c.nl

$ enscript -2r -G -d printer_name
$ enscript -2r -G -p output.ps
		
通常可以設這些選項在ENSCRIPT這個環境變數裡。 如圖

a2ps

另外a2ps更好用,也比enscript漂亮。可能不同的a2ps用法 不一樣,因為我常常在Solaris與Linux環境變換,兩個的命令有時用法會不太一樣。 請試試看
$ a2ps sample.c > sample.c.ps
		
或者
$ a2ps sample.c -o sample.c.ps
		
就好了。

練習

熟練的方法,我想很簡單就是實際用這個編輯器來做點東西,用這 兩個編輯器寫篇英文履歷吧。文字型態的履歷可能你覺得很醜吧,不 過我在美國的時候,大公司技術人員就是要這種文字模式的履歷。為 什麼呢?因為它們一天接到的履歷太多了,不可能真的一個一個看,他 們有種程式掃描文字檔,發現符合的key word時才認為這個履歷合格, 這種自動化的事情當然要用Text型式才有效率多了。MS-Word檔,他們還 不收呢,畢竟真才實料比好看的履歷重要多了。 寫完履歷,可以去玩玩真的程式檔,不管c/c++也好,Java也好,perl 也好等等都可以,畢竟這本書是用來教你程式工具的。

結語

非常簡單的編輯工具介紹到此,我想只要花一個下午,就一切都非常的熟悉 了,實在太簡單了。其中我們會發現,Unix的世界很多東西都只是一個概念, 然後有不同的實作。例如emacs有GNU emacs, XEmacs. vi也是 indent, lint等等也是。 當然其實沒有這麼簡單,一個emacs我看真的要出神入 化,玩一個月也玩不完,只不過我希望能由簡單的快速入門開始,做些有用 的工作引導出興趣來,不要去看那些艱深的隱晦的名詞觀念,也能很快的 上手。剩下的部分有興趣的人就多深入研究了。