用了那麼多的文字編輯器,要找一個完全讓自己滿意的還真的很難,看得越多,越難選擇,也許是挑花眼了吧:P。現在,我把自己理想中的文字編輯器寫出來,既然是理想中的,難免要求有點高,也許這樣的軟體永遠不會有,但我的理想卻一直存在。
一、總體要求
1、最好是免費軟體,如果開源就更好了。需求程度:★★★★
畢竟現在賺錢越來越難了,而一個共用軟體至少得幾十美元,折換成人民幣就是一個不小的數字了。雖然我也是程式員,仍然希望文字編輯器免費。對於開源的要求看似有點過分,其實我是出於這樣的考慮:像Vim的作者那樣,能堅持數年開發一個免費的文字編輯器的人實在太少,很多人剛開始開發時出於興趣,但後來由於各種原因,不得不放棄了對軟體的更新,比如DreamEdit、TextPro、Crimson Editor都屬於此列,如果開源,則可以給後人自己開發的機會。這兩點要求雖然比較高,但很多軟體都滿足,如免費且開源的軟體有NotePad++、Turbo
Pad、NotePad2、絕地程式編輯器、JEdit等,光免費不開源的也有PsPad、NoteXPad、DreamEdit、TextPro等。
如果是收費軟體,可以像Emeditor、EditPad那樣提供免費版給使用者,在功能上有一些限制也可以。
2、介面盡量好看一些。需求程度:★★
用了這麼多軟體,我最喜歡EmEditor和Programmer's notepad2的介面,尤其是EmEditor,用得最多。
3、啟動速度比較快。需求程度:★★★
我使用過的文字編輯器中,啟動速度比較快的應該是NotePad2、Win32Pad、NotePad++和Emeditor了,這幾個軟體啟動速度和記事本不相上下,啟動速度比較慢的就是PsPad、UltraEdit、Emacs了,其中Emacs最慢。但這個問題,又得分兩方面來看,像NotePad2、Editor2這種單文檔軟體,是我單純用來代替記事本的,每天得運行無數次,啟動速度至關重要;而UltraEdit、Emacs之類的多文檔軟體,每天只要運行一次就夠了,因此,這類軟體的啟動速度對我影響不大。
4、開啟大檔案快一點。需求程度:★★★
我一般編輯的檔案從幾K到幾M,都不算大,開啟速度影響不大。但有時要編輯比較大的軟體,幾十M乃至幾百M,這對軟體要求就比較高了,MadEdit在這點上做得很好,Vim、Emacs這樣的就更不用說了。
5、支援十六進位編輯。需求程度:★★★
這個要求比較特殊,但有時改程式用得上。Vim、UltraEdit、PsPad、NotePad++(用外掛程式實現)、MadEdit都支援此功能。
二、編輯方面
1、對中文支援好。需求程度:★★★★★
具體包括以下幾點:
(1)支援中文的搜尋、替換。這點目前大多數軟體都可以實現,即使是NotePad++,搜尋時只需要選中Regex就可以搜尋中文了(這個比較奇怪,中文和Regexms沒有太大的關係)。Turbo Pad好像不支援。
(2)添加、刪除漢字時不會出現亂碼。這個問題舊版本的EditPlus有,其他的目前還沒遇到過。
(3)列操作時不會出現亂碼。這個問題舊版本的UltraEdit有,其他的沒見過。
(4)支援中英文混排。這個問題很多軟體都支援不太好,比如NotePad++,如果中英文混排時會有莫名其妙的換行;EditPlus也有些問題,而且有時在空格後面會自動換行,看起來很難看;再比較雙擊中文中的一個英文單詞,如“我覺得EditPlus不錯”這句話,EmEditor、MadEdit將會選中“EditPlus”這個單詞,而NotePad++則會將全段的文字全部選中(它不認識中文),NotePad2更奇怪,它會選中一部分文字,也不知道是怎麼分開的。
(5)支援簡/繁體、全半形轉換。EmEditor、MadEdit這兩點全支援。
(6)支援中文空格縮排。這個功能現在只有EmEditor具備。
(7)可以統計字數。最好能統計中英文字數、單詞數。這點Emeditor和MadEdit支援的最好,NotePad2雖然可以統計,但只能統計整個文檔中的,不能統計選定文字;UltraEdit、Emeditor、Vim只能統計英文字數、單詞數;PsPad本身沒有此功能,但作者提供了一個指令碼,可以實現。
2、對編程支援好。需求程度:★★★★★
具體包括以下幾點:
(1)支援多種常用的程式設計語言。UltraEdit和EditPlus都不支援Pascal;PsPad預設竟然不支援C#(可以自己添加);NewEdit也不支援C#,但這個軟體主要針對Python而做。我覺得我理想中的編輯器應該支援Pascal、C++、C#、Java、INI、HTML、SQL這幾種語言。Vim這點做得最好,好像沒什麼語言它不支援。
(2)支援程式碼摺疊功能。最好支援三種摺疊方式:縮排摺疊、文法摺疊、自訂摺疊。Vim對這三種都支援;EmEditor用外掛程式支援縮排摺疊和文法摺疊,但有時會報錯;NotePad++、Edit-minus對文法摺疊支援最好,但不支援其他類型的摺疊。其他NewEdit、JEdit等也支援文法摺疊。
(3)支援程式碼完成。這個功能有很多名稱,有的叫Code Complete,有的叫Code Insight,但有的軟體將Code Complete視為代碼模板。我的要求就是,按某個快速鍵,可以彈出個菜單,選擇輸入某變數(該變數在前面出現過)。UltraEdit、PsPad、NotePad++、Vim、Scite都具有此功能。其中Scite可以設定為自動彈出,不需要按快速鍵,和VS2005有點像。
(4)支援代碼模板。有的地方叫Code Clip。是指按下某幾個關鍵字再按快速鍵,就可以彈出一大段常用代碼。比如輸入if,就可以自動完成為:
if ()
{
}
我最早在Eclipse中發現此功能,覺得很有用,後來在Delphi中發現也有,更是極大地提高了我工作的效率。
這項功能PsPad支援,Vim、Scite有個名叫“縮寫”的功能,也能支援,極地程式編輯器也支援。EditPlus中是自動彈出,但這有點不太方便,我覺得還是用快速鍵好。
(5)可以自動完成括弧、引號等的配對。這項功能大多數軟體支援,在此不多說了。
(6)可以回到上次編輯的地方,想當於VS中的Ctrl+-功能。此功能UltraEdit、EmEditor、JEdit都具備。
3、支援插入日期。需求程度:★★★★★
我經常需要在檔案中插入當前日期,所以對此功能要求比較迫切。我使用過的軟體之中,EditPlus做得最好,菜單中有好幾項,分別對應長時間、短時間、長日期、短日期等,非常全面;UltraEdit、EmEditor、NoteXPad、Editor2等軟體都可以插入日期加時間,但不能單獨插入,也不能設定輸出格式;PsPad可以設定輸出格式,Vim也可以設定,但要自己寫設定檔,有點難度。NotePad++、NotePad2等插入日期時,是時間在前,日期在後,如“13:23:32 2006-06-28”,也不能設定,和我的習慣不符。
4、支援網頁預覽。需求程度:★★★★
由於工作需要,我經常用文字編輯器開啟網頁進行編輯和預覽,感覺非常方便,而DreamWeaver等軟體雖然也有此功能,但畢竟太大,啟動和預覽都比較慢。
EditPlus、EmEditor都支援網頁預覽,其他軟體好像沒有此功能。
5、支援搜尋高亮。
這個功能目前只有Vim、EmEditor、NotePad++具備,即高亮你要搜尋的內容,看起來一目瞭然。
6、搜尋功能強大,支援Regex,並支援列表、統計等功能。
Regex現在很多軟體都支援,只是支援程度不一樣,其中最強大的應該算是Emacs和Vim了,UltraEdit的也不錯,EmEditor的似乎弱了一點。
至於列表、統計功能,只有NotePad++和PsPad支援,其中,後者支援得更好一些。
7、支援多剪貼簿。
這個功能在需要反覆修改代碼時非常有用,UltraEdit支援10個剪貼簿,而PsPad支援剪貼簿迴圈,我覺得後者更好用一點。其他軟體則不太清楚。
三、附加功能方面
附加功能有的看似不重要,但在使用過程中有它真是太好用了。總體上來說,我覺得PsPad在這一點上做得比較好。
1、進位轉換。
UltraEdit、PsPad都具備此功能,後者做得更好一些。
2、選區求和。
UltraEdit、PsPad具備此功能,後者做得更好一些。
3、運算式求值。
只有PsPad具備此功能。
4、Email發送。
具備此功能的有EditPad Pro、Emacs(需要自己寫設定檔)、DreamEdit,但DreamEdit的這項功能在我這邊一直無法正常運行。
5、檔案瀏覽器。
UltraEdit、EditPlus、Edit-minus、EmEditor(最新版本)、PsPad、Vim都具備此功能。
四、可擴充性。
在這方面,最強的據說是Emacs,以至於很多人把它稱為作業系統,但我不會用。:(
1、宏。
這點Vim和EmEditor都很強,EmEditor的宏功能支援VBScript、JavaScript、Perl、Python等多種指令碼語言,非常強大。Emacs的Lisp也很強,可惜沒用過。
2、外掛程式。
EmEditor的外掛程式功能最強,如行號、程式碼摺疊功能等功能都可以用外掛程式實現;而PsPad,外掛程式支援VBScript和JavaScript,能實現的功能和EmEditor的宏差不多;NotePad++的外掛程式功能也比較強,可以實現十六進位編輯等功能,可惜沒有提供介面。
五、配置方面。
這點上做得最差的要數SciTe了,雖然功能很強大,但設定檔完全得自己寫,連一點介面都不給,即使是Vim,也提供了一點簡單的配置介面。
我對配置的要求是:分類準確、功能全面。
UltraEdit的配置非常全面,但有用的不多;EditPlus可以算是簡潔,而太不全面;EmEditor的平衡把握得不錯;Vim、Emacs主要得靠設定檔;PsPad的配置方法也不錯,既能用介面設定,也提供了直接編輯的介面,但似乎不太全面。
寫了這麼多,發現自己最喜歡的編輯器還是EmEditor,其次是PsPad,MadEdit我是從昨天開始用的,也很喜歡,只是目前還比不上前二者,但它們還算不上完美,也算不上理想,希望自己有機會能編個好用的文字編輯器出來,雖然這個機會不知道什麼時候才能有。如果有人想編,希望本文能夠給他一個很好的借鑒。