剛進大學時,聽說 UltraEdit 是 programmer 必備的編輯器,也用了一段時間。不過後來遇上了 Editplus,從此把 UltraEdit 完全捨棄,從大四一直用到現在,也將近七個年頭了,剛剛在看 BBS 上的舊文章,發現自己雖然提到過很多次,但從來沒有在 blog 上跟大家介紹 Editplus,因此特地寫這一篇,勸說大家離開 UltraEdit 的懷抱。

簡單先用一句話介紹:「除了 binary(hex) edit 以外,UltraEdit 有的 Editplus 都有,Editplus 有的 UltraEdit 不一定有。

在七年前,如果把 UltraEdit 與 Editplus 的功能列出來比較的話,基本上 UltraEdit 是被「巴」假的。一直慢慢等到 UltraEdit 陸續新增了四、五個版次[1],UltraEdit 的功能,才漸漸地追上 Editplus。而 Editplus 的版次,從七年前到現在,都還是 2,從以前就一直強悍到現在。

Editplus 好在哪裡?先來貼一下 BBS 上的舊文:

 作者  JeffHung (御風只配做笨木頭), 信區: BBS_History
 標題  Re: 最近.....
 時間  淡江資工地上站 (Fri Jun 15 12:10:45 2001), 轉信

【 在 JeffHung (御風只配做笨木頭) 的大作中提到: 】
: 【 在 R* (*) 的大作中提到: 】
: : 小朋友或木頭應該都有吧...^^
: 我的是付錢買的。-__-"
: 九百塊台幣,我想對 g* 大大來說,應該是小事。:-p

貼點以前寫的介紹:

 1. 除了 hex editor 之外,UltraEdit 有的功能,EditPlus 幾乎都齊備了。
 2. html toolbar、edit/browse 切換鈕和瀏覽器分頁,讓網頁的編寫更佳方便容
    易。
 3. 專案管裡的操作比起 UltraEdit 來的更好用。
 4. Template、syntax coloring、auto-complete 等設定比起 UltraEdit(只能有
    三種 syntax coloring,好像無 template,無 auto-complete) 來的有彈性
    且設定簡單。其官方網站有許多特殊語言的 syntax、template 設定檔供人下
    載,從熱門的 WML,到什麼奇怪的 Policy 都有。
 4. 當然,其瀏覽器分頁可以讓我們把 EditPlus 看成是一個 opera 型的 browser
    來用。
 5. 直接使用 ftp 開啟檔案,直接如同一般存檔方式 (如 ^s 熱鍵) 使用 ftp 儲
    存檔案。其專案管理功能可以透過 ftp 涵蓋到遠端的檔案。我常用 EditPlus
    遠端處理某 unix server 裡的某 project 的檔案。不用另開 ftp client,
    寫起程式來輕鬆愉快。
 6. UI 比 UltraEdit 來的直覺好用。沒有什麼 %P、%F 之類的怪設定方式。
 7. 最讓我欣賞折服的特徵:line wrap 的部分會隨著原行一起 indent,寫起程
    式來超級順手,思路不會被 line wrap 的不規則 indent 擾亂。
 8. 應該還有很多很多,有待發掘。

--
在面對一個新架構的時候,難辦的是怎樣使既有的思維與之融合蛻變。

※ 來源:‧淡江資工地上站 bbs.cs.tku.edu.tw‧[FROM: *]

到了七年後的現在,UltraEdit 在功能面上,漸漸追上 Editplus,不過還是有幾點,與 Editplus 比較起來,仍然讓我無法入眼:

字漂亮

不知道為甚麼,UltraEdit 到現在,畫出來的字,還是醜到爆,感覺上似乎是完全沒有善用到 anti-alias 的樣子。看著這麼醜的字寫程式,就好像噎著滷蛋唱歌一樣,能好聽才有鬼。

Line wrap 的部份會隨著原行一起 indent,且是虛擬的

這個解釋起來有些複雜,不過看一下下面的螢幕截圖,就知道是什麼意思了。紅框標示的部份,同樣是第 51 行,但 line-wrap 後的第二行,除了縮排相同之外,左方行號的標示,也很清楚可以看出,那是被 line-wrap 過的同一行。有些時候,好比說在寫網頁程式時,程式碼就是必須得非常長,一般的 editor 在 line wrap 時,會 wrap 到最左端,在視覺上,程式的縮排就被破壞了。而 Editplus 的這一招,可以讓縮排的視覺效果,在 line wrap 時,仍然十分清楚。

搜尋的結果,列在分割視窗裡

Editplus 會將搜尋的結果,列在分割視窗裡,點兩下就可以跳到該檔該行。UltraEdit 就我所知,是將搜尋結果,放在 pop-up 視窗裡,十分礙眼。

Tabs & Spaces 的呈現

當選擇要顯示 tabs & spaces 時,Editplus 可以選擇 tabs & spaces 的顏色,弄淺一點就不會干擾到文章內容的讀取。同時,Editplus 使用「»」字元呈現 tab,視覺上的差異,足夠明顯。大部分其他的 editor 在這方面,就沒辦法處理的這麼好[2]

用 filter 的形式執行外部工具

Editplus 是我見過第一個 editor,可以用 filter 的形式執行外部工具。所謂 filter 就是可以把目前正在編輯的本文,當作外部程式的輸入,然後將外部程式的輸出,置換掉目前的本文。好比說我們可以執行 grep 這個外部工具,然後設定 prompt for arguments,就可以隨時指定條件,將本文裡不要的部份去除。

Filter 模式也可以把輸出放在 output window,也就是顯示搜尋結果的那個視窗。只要外部工具的輸出長得跟搜尋結果的形式一樣,也可以點兩下直接跳到該處。

Open Remote 與 Save As Remote

Editplus 也是我第一個看到,可以直接透過 ftp 開啟遠端檔案進行編輯,並在存檔時,直接回存到遠端的編輯器。後來更是第一個增加了 sftp 的選項,讓傳輸更加地安全。

Regular Expression 語法與 POSIX/Perl 相同

Editplus 的 regular expression 語法,與常見的 POSIX/Perl 語法幾乎相同,學習曲線幾乎是平的。不像 UltraEdit 自創一套語法,實在是讓我弄半天搞不清楚如何使用。

Seamless Browser Integration
在七年前,我第一次用 Editplus 時,Editplus 就內建有 seamless browser,可以內嵌 IE 於編輯區,瀏覽網頁內容。除了方便快速地在程式碼與瀏覽器間切換,方便網頁寫作之外,也可以乾脆不編輯任何東西,直接將 Editplus 當成一個具備 tab 機制的瀏覽器。
便宜

我買 Editplus 2 才花新台幣 700 多塊,用了七年還不需要附升級費,而且作者仍然有一直在改版,如新增的 sftp、code folding 等功能,升級統統不用錢。在這期間,UltraEdit 不知道升了幾次 major version,不用海盜版的話,恐怕會恨的牙癢癢的。

基本上,Editplus 根本就是便宜實惠,歡迎大家使用。


  1. 那時候好像比較新的是 UltraEdit 8 的樣子。
  2. Vim 除外。