本文首發自Air On Gjavascript
傳說上古之時,上帝爲了防止人們齊心合力製造可以通向天堂的通天塔,給了不一樣人羣不一樣的編輯器,其中最大的兩羣人分別拿到了叫作VI和Emacs的編輯器,其他的nano,ed,UltraEdit之類不一一詳敘。自此之後,人類爲了使用什麼編輯器來編寫通天塔的文檔吵個不停,再也沒有心思去修通天塔了……css
後來,有不一樣的英雄察覺了上帝的企圖,決定以我的之力從新統一人們的編輯器,並賦予其更強大的弒神之力。這些英雄的名字不只僅限於Text Mate,Sublime……html
最近,一個新的英雄自帶光環的出如今了你們眼前,Atom……java
本文使用Atom編寫node
決定仍是好好說話。Atom是github最近的一個桌面編輯器項目。剛一發布,馬上引發了衆人圍觀,不只僅在hack news上有着諸多報道,其github repo也被迅速關注,而爲其編寫的package更是一晚上之間遍及各個領域。git
爲何Atom能如此受到關注?除了github自己的光環,以及開箱即用的功能,對其目標人羣——程序員——來講,基於web技術理念設計的桌面軟件,大概是最吸引人的特色。程序員
簡單來說,Atom實際上是一個跑在本地的網頁。Atom編輯器自己是個Chromium項目,運行時會在NaCl(Native Client)環境裏啓動一個node.js的進程處理編輯器的核心功能,在界面上利用Chromium顯示由node.js支持的網頁,並在頁面上爲使用者提供功能。目前在Atom的界面上,還能夠隨時用Chromium的快捷鍵cmd+alt+i來打開控制檯,查看整個Atom程序的頁面佈局:github
因爲Atom的界面自己就是網頁,那麼主題這種表現層的東西就交由css完成。實際上,Atom的主題確實就是一段css代碼,好比默認主題atom-dark-ui。使用node.js來提供後臺服務,也讓Atom的功能插件能夠從前到後都使用javascript一種語言搞定。web
以css和javascript做爲基礎,大大簡化了爲Atom開發的門檻,只要有web的編程基礎,再加上好的創意,就能爲Atom編寫插件。這也能解釋從Atom發佈到如今不長的時間裏,Atom的package數量就快速增加,覆蓋了各個領域(參見package頁面)。npm
因爲Atom還在邀請使用的階段,若是尚未的同窗,請發揮本身的人脈,或者善用Google,找到安裝包。目前的安裝包彷佛只有Mac上的版本……
打開Atom,第一感受是……咋和Sublime這麼像?除了默認字體是Monaco,而Sublime默認使用Menlo外,界面佈局幾乎徹底同樣。順手按下cmd+shift+p,不出所料的調出了命令面板(Command Palette)。在命令面板裏鍵入install packages
打開設置界面,嗯,終於有些不同了。Atom的設置界面長的更像一個網頁,內容信息徹底超過Sublime以行爲主的簡單搜索。
設置界面的右側列表裏列出了Atom自帶的全部package。簡單瀏覽一下,各類語言支持全面,還有對git和markdown的支持,不愧是github的產品。比較有趣的模塊是Metrics
,點進去看一下,竟然是用Google Analytics來統計Atom的使用狀況!
程序員會更喜歡使用命令行調用編輯器。點擊Atom
菜單,選擇Install Shell Commands
,就會在系統裏安裝atom
和apm
兩個命令。atom
命令能夠在命令行啓動Atom程序,並打開文件,apm
則相似node.js的npm
,是Atom的package管理程序。
與Sublime不一樣,Atom會根據打開文件所在的目錄,決定是否使用一個新的窗口打開文件。好比在目錄A下打開文件a A> atom a
,和目錄B下打開文件b B> atom b
,會打開兩個Atom窗口,兩個窗口的佈局和右側的目錄視圖都不一樣,方便在多個項目間切換。
Atom內建對git的支持。若是打開的文件所在的目錄是個git項目,會在右下角的狀態行顯示repo的分支,該文件和git repo上最後一個版本的差別,左側的目錄樹也會顯示哪些文件有改動,哪些文件是新增的。
Atom默認支持github的markdown預覽。編輯markdown文件時,能夠在命令面板裏輸入markdown preview
,或者按ctrl-shift-m,就能夠打開markdown的預覽。不過這個預覽只能顯示已經存盤的文件內容,若是能實時顯示編輯的文件內容該多好。Atom還支持github定義的```
代碼塊,並根據代碼內容作高亮:
點擊Atom
菜單下的Open Your Stylesheet
,就能夠打開編輯用戶自定義的主題。好比,在打開的Stylesheet最後添加以下內容:
.editor .markup.underline.link.hyperlink { color: #AAA; text-decoration: underline; }
就能夠把程序註釋裏的url稍微高亮,並加上下劃線。正好默認的Stylesheet第8行有個url,cmd-s存盤後就能看到效果。
Atom的配置文件卻是頗有特點的選擇了cson,而不是更通用的json。固然,cson徹底兼容json,把全部的配置看成json來寫沒有任何問題,甚至還不用拿着放大鏡找哪一個數組的末尾多寫了逗號這種惱人的狀況。不過,總有人會討厭這種混合着yaml和json的格式的。
我多想最後就寫一句話:Atom就是好啊就是好!就是好啊就是好!就是好!
惋惜,這句話不是現實。
拋開實現還不穩定,常常遇到這樣那樣的小問題外,對Atom最大的不滿,就是慢!這東西太慢了!Atom和Sublime打開的速度對比,讓人想起當年Vi對比Emacs打開速度的優點。再有就是Atom編輯大文件實在力不從心,稍微上10k的文件就能感受到明顯的延遲,這仍是在使用ssd的MacBook Pro上的狀況。打開文件瞬間閃過沒有任何高亮的代碼,也是拜速度所賜。
相比Text Mate的沉淪和Sublime的拖沓,仍是相信github會對Atom很是上心,會盡量解決目前存在的問題。Atom社區也會很是活躍的產出各類package,解決不一樣使用場景下缺失的功能,擴展Atom的能力。
若是你是程序員,或者是喜歡折騰的Geek,試試Atom吧。無論最終是否是使用Atom,你都會發現其獨特的一面。