簡介
文本編輯器是計算機軟體中的一種。主要用於用來編寫和查看文本檔案。有一些特殊的文本編輯器支持增加自有的格式來豐富文檔的表現形式。作業系統或者集成開發環境通常會帶有可以查看和編輯純文本的編輯器,可增加格式的文本編輯器通常是個人用戶或者公司在製作需要格式的檔案中使用。
因為程式和程式的配置檔案通常是以純文本形式儲存,所以程式設計師也需要使用純文本編輯器來編輯程式和配置檔案。
純文本檔案與文字處理檔案
由文本編輯器創建的純文本檔案與由諸如Microsoft Word、iWork與OpenOffice.org之類的文字處理器創建的文檔檔案之間,存在著明顯的不同:
•當展現或者編輯純文本檔案時,需要顯示檔案所含的所有字元。起標記作用的只有那些文本檔案所使用的字元集裡的控制字元,即換行符、定位點和換頁符,比如簡單常用的字元集ASCII。純文本檔案常用於編寫程式和記錄配置信息;或者自定義標籤的格式如,XML、HTML。
•文字處理器創建的文檔除了包括字元集所定義的字元外,通常還包含由檔案格式指定的控制字元。這些控制字元實現了諸如粗體、斜體、字型、列、表等功能。
•文字處理器通常能夠編輯並導出或保存為純文本檔案。但是,這樣做必須很小心。當你用文字處理器處理源程式、HTML代碼、配置檔案和控制檔案的時候,要格外注意。否則,這些檔案里就會包含那些文字處理器對應格式里的特殊字元,這樣你的檔案就會出現問題。 [1]
歷史
在文本編輯器出現前,人們用打孔機把計算機文字打到穿孔卡片上。文字存放於一個裝著這樣的薄卡片的盒子裡,可以用讀卡器來閱讀它。
第一個文本編輯器是一種行編輯器,它運行在打字機型的終端上,這種編輯器並不具備在視窗和螢幕中顯示的功能。它包含了一些非常短的命令(為了減少打字量)。其中一個命令能夠把檔案的指定部分通過打字機列印出來。編輯游標是想像中的一個插入點,通過特殊命令,可以把它移動到特定內容字元串所在的行。隨後,內容字元串又被擴展成正則表達式。如果想看到檔案的變化,你需要把它列印出來。相對於穿孔機來說,人們認為這種基於行的文本編輯器具有革命性的進步。如果沒有它,用戶就需要把那些處理文本的命令打成專用的卡片,並在編輯檔案時使用這些卡片。
當帶有顯示屏的計算機終端出現後,基於顯示屏的文本編輯器開始流行起來。最早的全螢幕編輯器中,有一種叫做O26,它是於1967年為CDC 6000系列機器的操作控制台而作的。另外一個早期的全螢幕編輯器是vi。vi誕生於20世紀70年代。至今,它仍然內置於Unix和Linux系統中,不過vi也有一個改善的版本Vim也十分為人所知。全螢幕編輯器對視頻終端的銷售起到了促進的作用。
不同的文本編輯器
有些文本編輯器簡潔易用,只能編輯純文本檔案,也有些文本編輯器功能豐富複雜,支持大量格式的文本檔案。Unix和類Unix作業系統都提供了vi編輯器(或者是它的變種),但是也有部分作業系統提供了Emacs編輯器。這兩個文本編輯器以其獨特的快捷鍵操作和可定製的工作環境而在程式設計師世界中廣泛套用;普通用戶則喜歡使用Office來為文本添加格式。Windows系統同樣提供了可編輯純文本檔案的記事本和一個類似於Word的寫字板提供了基本的寫作功能。也有很多人,尤其是程式設計師更喜歡Windows下功能更豐富,更專業的其它編輯器。OS X所提供的TextEdit可以編輯純文本也可以編輯多信息文本,類似於DOS中的Wordstar.
專業的文本編輯器需要在處理巨大的文本時保持速度的能力。例如,系統管理員需要讀取很長的日誌檔案;程式設計師需要修改很大的原始碼檔案,或者檢查那種異乎尋常的大檔案,比如用於存儲整本詞典的檔案。這需要文本編輯器對大文本進行特殊的最佳化,而不是簡單的把文本載入記憶體。
有些文本編輯器專門為提高效率和自定製環境提供了可程式的語言。這些語言大部分都是通用的腳本語言,也有一些是專門為文本編輯器設計的語言,例如Vim的Vimscript。在Emacs中,可以用Lisp程式編寫宏來控制Emacs或者自定義快捷鍵。利用這種手段,用戶可以按照自己的習慣方便的使用這些文本編輯器,但是這些方式也通常難學,不利於初學者定製自己的習慣。
還有一些可程式編輯器採用REXX作為它們的腳本語言。這些編輯器支持在螢幕的底部直接輸入命令或者REXX語句。在這類編輯器中,最具代表性的是Xedit的後續產品,而Xedit是IBM在VM/CMS中的編輯器。一些vi的後續產品,如Vim,還支持摺疊以及宏,而且在底部還有命令行。人們認為它們是另一類正統編輯器。
許多用於開發軟體的文本編輯器支持原始碼的語法高亮和自動完成,這樣就能夠使得程式更容易讀寫。程式編輯器通常還允許你選中一個子程式或者變數,然後跳轉到它的定義部分,再跳回原來的位置。像ctags這樣的附加工具就是專門用來定位定義部分的。
隨著計算機網路的發展,又誕生了可以多人協同編輯的文本編輯器,如Windows作業系統下的Netpad,它可以讓多人同時協同編輯或閱讀同一個文本檔案。
典型功能
剪下、複製、貼上
大多數文本編輯器都支持檔案內的或者檔案間的複製或者移動。
文字排版
文本編輯器通常支持基本的排版功能,如卷行、自動縮排、行號排版、注釋排版等等。
撤銷和恢復
同文字處理器一樣,文本編輯器也支持撤銷和恢復。通常,尤其是老的文本編輯器,只支持一級的編輯歷史,只能撤銷或者恢復至上一次變化。現代的和複雜的文本編輯器支持多級的編輯歷史,這樣就能夠撤銷或者恢復至任何的歷史狀態。能夠記錄變化的次數隨編輯器的不同而不同,通常也是可以配置的。
導入
讀取或者合併另一個文本檔案的內容至當前正在編輯的檔案。有些文本編輯器支持插入作業系統命令的輸出。
過濾
一些先進的文本編輯器允許你把正在編輯的檔案傳送至另一個工具,並把過濾後的結果回讀至這個檔案。例如,用這種方法可以對一些行進行排序,或者進行數學計算等。
參見
•文本編輯器比較
•文本檔案
•編輯器之戰
•十六進制編輯器