在善用佳軟上看到一篇文章,介紹的是一款編輯器——SUBLIME。印象不錯,下下來試用了一下。功能之強大,簡直讓我的Emacs也為之汗顏。EMACS,VIM也是跨平臺的。但是,就像Windows下很少有人用VIM或EMACS一樣,SUBLIME或許會在WINDOWS下流行開來(雖然不會像EMACS和VIM在UNIX和LINUX上那樣的流行),或許MAC上也會有不少人用它,但它恐怕是無法在LINUX/UNIX上有多大成就。因為它雖然跨平臺,但還是帶著太多WINDOWS的東西。而WINDOWS和LINUX/UNIX,是兩種完全不同的文化。開源文化不僅在于開放源代碼,更是一種自由的精神。在LINUX/UNIX上,你幾乎有無限的自由去做你想做的任何事,修改內(nèi)核,配置一個獨一無二的桌面,甚至完全不要桌面,發(fā)明一種新的編程語言,一種新的版權(quán)協(xié)議,義務(wù)翻譯英文文檔,報告程序bug或者自己修改別人程序的bug.有些事情或許再我們看來難以完成,或者只是一種奢望。但奢望總比安于所得強些,所謂技進乎藝。唯有不斷地磨練自己的技術(shù),永無止境,才能達到藝的境界,才能讓技藝和自己的生活完美地融合在一起。而不是只會在情人節(jié)的時候沾沾自喜地用某種語言輸出一句“I love you"。
而LINUX/UNIX給我們提供了一個不斷追求技藝提高的平臺。這是一個高手云集的世界,你永遠不敢說自己是最強者。在不斷的競爭中,開源就像微軟所說“像癌癥一樣“不斷地迅猛發(fā)展。VIM和EMACS就是這種文化孕育出來的最為優(yōu)秀的產(chǎn)物之一。
為什么它們會被稱為神一級的編輯器?因為自由,以及對技術(shù)的熱愛。一個安裝出來要好幾個G的virtual studio,在功能上完全比不上幾十兆的EMACS和VIM。因為EMACS和VIM只需一些幾十K的插件,就能支持你所知道的任何語言。語法高亮,自動補全,快捷鍵綁定,編譯,調(diào)試,項目構(gòu)建,源碼閱讀……。EMACS和VIM都是公開源碼的,你可以自由修改以滿足自己的需求,還可以自己寫插件,并免費提供給別人,因為一切都與利益無關(guān),有關(guān)的只是興趣,以及分享的快樂。在設(shè)計之處,EMACS和VIM就有無限擴展的能力。在VIM里你可以很容易地執(zhí)行SHELL命令,或者調(diào)動系統(tǒng)中任意的程序。在EMACS中,你可以很容易地擴展出普通編輯器所無法具有的功能。源碼控制,RSS,郵件客戶端,網(wǎng)頁瀏覽,閱讀PDF文件或者圖片,聽音樂,看電影,IRC聊天,記筆記(evernote),wiki,微博(twitter),甚至查看Google Map,畫圖,玩游戲,又或者管理系統(tǒng)中的文件……
EMACS和VIM是兩個極端。VIM是UNIX軟件設(shè)計的精髓的體現(xiàn):只做一件事,并且做到最好。EMACS則更像是LINUX的一種代表,豐富多彩,給人以無線可能。但有些東西是共通的:開源,還有人在與編輯器的接觸中人與編輯器的共同進步。從某種程度上說,它們確實是神器。
而在WINDOW上,一切的軟件,WINDOWS本身,Virtual Studio,UltraEdit,NOTEPAD++,還有這個SUBLIME,呈現(xiàn)的完全是另一番景象。在這些軟件的作者眼里,他們的用戶都應(yīng)該是傻子,我給你什么,你就用什么。我把所有的功能都做出來,你為這些功能掏錢。在LINUX/UNIX上,軟件開發(fā)者開發(fā)出來的軟件也是他們自己喜歡用的。其實評判一個軟件的好壞很簡單,那就是看他的作者會不會會用。LINUX在用LINUX,StallMan在用EMACS,微軟的開發(fā)人員在給LINUX報告BUG。那些WINDOWS上自以為是的程序員高高在上地看著他們開發(fā)的軟件的用戶,以為不開放源碼就能永遠保持技術(shù)的領(lǐng)先。在用戶變得越來越懶的時候,自己也會越來越失去創(chuàng)新的活力。
SUBLIME是也是可擴展的,但是和VIM與EMACS有根本的不同。對于一個不開源的軟件,不知道有多少人愿意為它寫插件。對于一個普通的用戶,他最多也只是會去看一眼那些看起來長的要命的選項設(shè)定,然后心滿意足地去這個“優(yōu)秀”的軟件。對于VIMER和EMACSER則不然,They stay foolish,and they also stay hungry!。誰會滿意最開始的那個EMACS或VIM,在常年累月的“折騰”中,手中雖然仍然是一個不太完美的編輯器,但是,眼界和能力,已不是當(dāng)初的那個新手了。
EMACS和VIM還有另外一個很大的福利:SHELL和LISP。這更是普通編輯器所無法比擬的。有誰會在用SUBLIME的時候PYTHON編程也很快的提高呢?但是要想用好EMACS,你要熟練LISP,要想用好VIM,你要熟練SHELL,這是成為高手的必由之路。也沒有幾個人愿意避開。在LINUX/UNIX上,這么好的學(xué)習(xí)和鍛煉自己的機會,誰舍得呢?