我理想中的文本編輯器

知識若不分享 實在沒有意義 http://www.yidabu.com 20070109

點擊下面網址查看原文:http://bbs.yidabu.com/thread-12-1.html

kinghoo原創

用了那麼多的文本編輯器,要找一個完全讓自己滿意的還真的很難,看得越多,越難選擇,也許是挑花眼了吧:P。現在,我把自己理想中的文本編輯器寫出來,既然是理想中的,難免要求有點高,也許這樣的軟體永遠不會有,但我的理想卻一直存在。

一、總體要求

1、最好是免費軟體,如果開源就更好了。需求程度:畢竟現在賺錢越來越難了,而一個共享軟體至少得幾十美元,折換成人民幣就是一個不小的數字了。雖然我也是程序員,仍然希望文本編輯器免費。對於開源的要求看似有點過分,其實我是出於這樣的考慮:像Vim的作者那樣,能堅持數年開發一個免費的文本編輯器的人實在太少,很多人剛開始開發時出於興趣,但後來由於各種原因,不得不放棄了對軟體的更新,比如DreamEdit、TextPro、Crimson Editor都屬於此列,如果開源,則可以給後人自己開發的機會。這兩點要求雖然比較高,但很多軟體都滿足,如免費且開源的軟體有NotePad++、Turbo Pad、NotePad2、絕地程序編輯器、JEdit等,光免費不開源的也有PsPad、NoteXPad、DreamEdit、TextPro等。如果是收費軟體,可以像Emeditor、EditPad那樣提供免費版給用戶,在功能上有一些限制也可以。

2、界面盡量好看一些。需求程度:用了這麼多軟體,我最喜歡EmEditor和Programmer『s notepad2的界面,尤其是EmEditor,用得最多。(知識若不分享 實在沒有意義 http://www.yidabu.com)

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++,搜索時只需要選中正則表達式就可以搜索中文了(這個比較奇怪,中文和正則表達式ms沒有太大的關係)。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、搜索功能強大,支持正則表達式,並支持列表、統計等功能。正則表達式現在很多軟體都支持,只是支持程度不一樣,其中最強大的應該算是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我是從昨天開始用的,也很喜歡,只是目前還比不上前二者,但它們還算不上完美,也算不上理想,希望自己有機會能編個好用的文本編輯器出來,雖然這個機會不知道什麼時候纔能有。如果有人想編,希望本文能夠給他一個很好的借鑒。


推薦閱讀:
查看原文 >>
相關文章