我理想中的文本編輯器

 用了那麼多的文本編輯器,要找一個完全讓自己滿意的還真的很難,看得越多,越難選擇,也許是挑花眼了吧: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++,搜索時只需要選中正則表達式就可以搜索中文了(這個比較奇怪,中文和正則表達式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我是從昨天開始用的,也很喜歡,只是目前還比不上前二者,但它們還算不上完美,也算不上理想,希望自己有機會能編個好用的文本編輯器出來,雖然這個機會不知道什麼時候纔能有。如果有人想編,希望本文能夠給他一個很好的借鑑。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章