Atom、Sublime Text、VSCode 三者比較,各有哪些優勢和弱勢?


VS Code 還是和 Atom 走了不同的路線。Atom 從一開始就把插件化架構擺在第一位,對 Atom 而言最重要的是靈活而又完備的插件 API,相比之下甚至連性能都沒那麼重要,從發布以來就沒加過多少功能,只是在改進 API;而 VS Code 其實還是 VS 的思路,即提供一個對用戶而言好用的,即高性能的、功能豐富的、質量可控的 IDE,這一點從很晚才發布的插件系統和每個版本加入的大量新功能中可以看出。


收藏數是點贊數的四倍什麼鬼= =

——————————正文分割線————————

我就說說 atom,國外用戶估計都是高配電腦(or osx)吧,總之我在 mac 底下,atom 基本不卡,50+個插件1.5s 啟動。

我這裡寫了個 atom 的介紹,羅列了不少atom 的優點,有興趣的可以來玩一下,只要機器不錯,體驗非常好(尤其 web 前端,比 st、vsc 好太多,插件生態好、界面好、操作和 chrome dev tool 一致。

(原文閱讀更好)SimplyY 的博客文章: 《atom tips(0):介紹》 鏈接為: http://simplyy.space/article/56ecd7303aae9e5a65c46d64

之前還答了有哪些 atom 優秀插件的題 Atom 有什麼優秀插件? - SimplyY 的回答

atom tips(0):介紹

github 官方介紹:The hackable text editor

atom 的用戶越來越多,尤其是 web 前端開發者,幾乎能和 sublime 分庭抗禮,而且要知道的是 sublime 是 個人開發者並且收費閉源(蛇神說更新慢的一比,bug萬年不修),而 atom 則是整個社區驅動,插件一年發布上千個(一堆 amazing 的插件),而且在 web 前端開發方面現在幾乎擁有 sublime 的所有功能(並且更多,關鍵是還可以 hackable 啊)。

總之,我覺得它非常的簡單易用、外形好看、功能強大、hackable、amazing、強大的社區驅動(github 就是它的生態 orz),前端開發者的福音。

外形

atom 的界面 ui 非常的現代化,並且有很多 theme 可以選擇

我的 theme

性能

我知道大家都黑它啟動慢,但是講真,它越來越快了,我這裡第三方插件裝了56個,只要 1.5s 啟動。

同時 Atom編輯器1.0版本以來性能得到了很大的提升,主要是兩個方面,一方面是js層的各種渲染優化,控制項優化,延遲繪製,延遲載入,只繪製當前需要的東西等,另外一方面是將一些核心數據結構移動到 Electron 的 C++層,如今1.54版本性能較去年版本已經有了本質區別,運行時載入是慢些(但也比eclipse快很多),實際使用並沒覺得不如別的編輯器,況且,js層的優化和C層的優化未來還有很大的空間可以進步。 作者:韋易笑 鏈接:如何評價 GitHub 發布的文本編輯器 Atom? - 韋易笑的回答 來源:知乎 著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

安裝插件

有著 ui 界面的插件頁面,安裝、管理插件會非常方便

豐富的快捷鍵操作

cmd 在 win 下對應為 ctrl

它是基於 electron(Electron 的底層基於Chromium 和node.js),並且你會發現它非常像 chrome dev tools(cmd + p,cmd + shift + f 等等快捷鍵完全一樣,一套快捷鍵倆地方使用,簡直不能再棒)。

更多在這 SimplyY 的博客文章: 《atom tips(1):常用操作》 鏈接為:http://simplyy.space/article/56ecd89a39a1954f69680f1e

強大的模糊命令

cmd + shift + p 啟動,通過命令輸入框可以使用任何插件(自帶插件和第三方插件)的功能。特別是對於懶得記太多快捷鍵的童鞋的福音(說的就是我。。)

豐富而且 amazing 的插件

SimplyY 的博客文章: 《atom tips(2):web 開發常用插件》 鏈接為:http://simplyy.space/article/56ecd89a39a1954f69680f1f

強大的 snippets 系統

自己定製自己的代碼補全功能,是那麼的簡單。動態語言補全的福音。而且非常的 hackable。

我自己寫了一個 web 開發者常用的, GitHub - SimplyY/simplyy-snippets: atom package for code complete

詳情見這裡 Atom飛行手冊翻譯: 2.6 代碼段

和 git、github 深度配合

你可以直接從當前文件定位到 github 的文件,和 git 的深度配合

詳情見這裡 Atom飛行手冊翻譯: 2.11 Atom中的版本控制


Atom卸了裝裝了卸,就因為我不敢相信它那麼卡.結果每次還是

卡卡卡卡卡卡,打個字都能掉幀我真是醉了.

//--------- 2018年更新--------

我已經從sublime叛逃vscode,sublime那麼長時間不升級,在atom和vscode的壓力下終於升級後長得那叫一個丑,現在用vscode,要什麼有什麼,markdown,python,matlab彙編全都不在話下,啟動和運行速度雖然比sublime差一點,但絕對很快。強烈推薦所有人使用。


i7-4790+32G,Atom打字卡成幻燈片

然後打開同一個項目Atom和VSCode的對比:

△一開始Atom的CPU佔用率就是VSCode的三倍有餘,然後內存佔用率更是高到了36倍多

△然後Atom的佔用率會持續上漲,當然VSCode的也漲了

△之後會發現VSCode的已經停了,而且CPU佔用率也一直很穩定,但是Atom的會無限上漲

之所以會做這個測試是當時前不久04月23日,我正在用Atom一邊卡一邊寫東西一邊和別的程序員瞎聊

然後我聞到一股焦味

但是我沒關機仔細找,沒能找到源頭

於是當時也不是在寫什麼重要的東西就全都關掉了沒去在意

第二天也沒發生什麼我就沒去管他了(懶)

第三天當我再次用Atom打開一個項目看的時候

再次聞到了焦味,然後這次在我還沒去找之前電腦直接黑屏了,無限重啟

然後我拔電源拆主機出來一看,CPU供電線燒了

當時的我是懵逼的,完全沒想到是因為Atom

然後某寶去下單了個新的

然後電腦么也開不出了,就仔細想了下

於是新的線到了裝好後就有了開頭那番測試

那驚人的結果令我馬上就把它卸了

補充一下配置圖


Sublime: 快速,穩定,性感(?),全局搜索和索引速度超快,插件功能性好,可定製化一般(不能大幅度魔改界面,功能),可配置快捷鍵,構建參數,代碼補全基於Snippet,沒有IDE那種全局帶類型推導提示來的爽

Atom: 速度一般,更新快,Hackable,任何了解過Web,會一點JS的都可以自己寫插件,任何Web能實現的功能,效果都可以實現,且可配合本地庫。對Web開發者(尤其前端)友好,對很多語言代碼提示完善,配合插件可以全項目類型聯想代碼補全,終端集成,分屏,調試器集成,Logger集成,非常簡單可以打造一個自己的IDE,缺點就是基於Electron(Chrome)的效率問題,資源佔用大

VSCode: 速度較快,對超大文件讀寫速度飛快(打開10M代碼不到1s,Subline原生會卡近6s),插件數量相對少,有一些增強功能比如調試器,終端,原生支持語言語法高亮較少(C# JS TypeScript是第一位),內置JS/TS調試器…可以基於不同項目(文件夾)設置偏好,寫C#和JS/TS專用

總結:

Sublime的潛在用戶是Vim/Emacs黨,超快的啟動速度低資源佔用,適合編輯任何小文本(包括普通文本,配置文件),C/C++/ASM和很多腳本語言以及不需要實時調試類型的語言,插件多是非常實在的功能,缺點是有證書購買(雖然可以一直無限制使用),感覺沒有開源項目來的自由

Atom目標是IDE替代品,可以配合插件打造成高效IDE,而且對Web平台開發者友好,對前端更友好,Hackable讓任何人都能簡單貢獻自己的插件,如果能解決速度問題和資源問題那就基本沒有什麼缺點了

VSCode目標是對超大文件和項目管理有要求,以及http://ASP.NET C# JS開發者友好,熟悉VS的上手快速,但社區支持和插件數量還不如前兩者,可以看後續發展


我花了一個周末的時間來測試了這三者在Mac的表現,在這裡分享一下。先說說我的場景和使用要求。我現在在做Chromium的開發,語言是C++,同時需要寫些自己測試和自動測試用的網頁。Chromium現在的代碼(只checkout當前最新)是20G左右,然後ctags生成需要5分鐘,10G。我自己使用上最重要的功能是代碼補全(基於語法那種),然後是根據模糊文件名打開文件,再之後是文件內的Symbols跳轉。然後是一些可有可無的功能:lint,format,goto define,git diff/merge。最後如果能Linux和Mac都能使用就最好了。

Sublime Text和Atom都有同事折騰過一條路,VSCode是我自己去試的。

- Sublime Text https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sublime_dev.md
- Atom https://chromium.googlesource.com/chromium/src/+/master/docs/atom.md
- VSCode:我只裝了幾個插件 youcompleteme, cpp-symbols, header source, clang-format

下面開始吐槽:

- 代碼補全。我現在在Sublime用的是SublimeClang,只支持Linux,問題挺多的,常見的是對於某些變數突然就不工作了,偶爾會突然卡然後ST會死掉,還有切分支必須重啟ST否則會亂掉,最關鍵的是作者已經不維護了。看到有Opera的員工在折騰這個GitHub - niosus/EasyClangComplete 然而我還是沒有成功配置到Chromium可以用的程度。Atom和VSCode我都是安裝了他們的youcompleteme插件,暫時看上去效果還好,起碼不會像vim-youcompleteme亂報找不到文件(估計ycmd是報了,只是這些個插件還沒實現-_-|||)。另外youcompleteme被投訴得最多的是會自己卡死,不知道到時候我用的時候會怎樣。

- 根據模糊文件名打開文件。這個必須給Sublime好評,完全沒有卡,一打開就可以搜索。相比之下Atom的FuzzyFinder有點慢。第一次打開幾乎要花掉3分鐘,考慮到只有每天上班、切分支需要重啟Atom,就當休息吧。VSCode的體驗介於前面二者,每次搜索需要5秒左右,老實說這種策略不如Atom的策略,我去休息一下比我每次等爽多了。

- Symbols跳轉,Sublime支持,Atom支持但是默認的實現有點問題,我換了goto插件,VSCode我試了幾個C++相關插件都不能正常使用最後裝了個cpp-symbols。

- lint Sublime按文檔裝完以後有一個很好的lint,基本報錯能報到準確位置。Atom看上去有插件,但是裝完報錯報的地方不對。VSCode沒有對應的C++插件。

- format 三者都可以裝插件實現,ST的clang-format在Mac有點問題,暫時會導致文件變成空白。
- goto define 三者的實現都各有各的詭異,不評價了。

----------------------------------------------

有朋友問為啥不用Vim。首先Vim的YCM插件一直都有問題,在Chromium的代碼下,很容易就將Vim卡死,屬於不怎麼可用的狀態,這個事YCM插件的問題,不關ycmd事。而且會胡亂報錯,我定位到是ycmd報的錯,貌似是其他插件直接忽略掉那些報錯。據我了解,用Vim同事直接就手打,不需要補全,然而我並不喜歡這樣。

----------------------------------------------

2017年2月9日更新:

從2016年10月到2017年2月8日,我主力開發工具在Atom。

Atom:有一段時間的ycm插件的速度有問題。不過在最新的版本修復了,現在運行得很流暢絲滑。FuzzySearch依然是最大的問題,我最近用fzf代替了,工作流程變成調出terminal,$ atom FILENAME** &,效果還行。

不過接下來一段時間我在Linux下會主力用Qt Creator https://chromium.googlesource.com/chromium/src/+/master/docs/qtcreator.md

今天我去試了一下vscode的最新情況。

vscode:

很多插件的問題都得到了修復,非常值得期待。

1. go to symbols修復了,可以直接用微軟c++插件的
2. format,可以直接用微軟c++插件的
3. 跳轉header,可以直接用微軟c++插件的
4. 有keymap的插件,可以不用學習快捷鍵了
5. vscode的git體驗要比atom好了不知道多少倍,atom經常提交了還是顯示有change,而vscode幾乎是實時的

我至此只安裝了2個插件(C++,you-complete-me)就可以滿足我日常的工作開發。另外發現了一個新的問題:掉電很快,我現在基本是1分鐘1格電。似乎是後台在跑indexing,需要修改配置關掉「C_Cpp.addWorkspaceRootToIncludePath": false。

配置文檔在這https://chromium.googlesource.com/chromium/src/+/master/docs/vscode.md


給 Atom 開發插件的感覺真舒服,我正在調節我的插件下面的 bottom panel 輸出的字體和樣式,右邊開著 Chrome的開發者工具所有樣式和層次一目了然,實時修改,選擇放大鏡把滑鼠移動到atom的任何一個位置,HTML就能顯示出來,下面的CSS樣式的層次繼承關係和最終效果也隨即展開,隨時可以動態修改看效果,調好了再寫到代碼里去。


目前感覺VIM支持最好的要屬VSCODE

TERMINAL的集成也是vscode的亮點,就憑這兩點我直接放棄了atom和sublime


vs code1.3終於是人用的啦。

NM之前標籤頁關閉那個X到右手邊那麼遠,我說微軟為了標示與atom的區別故意弄得這麼反人類,原來是開發未完成。

還有插件管理器,有點樣子了~

atom實在太肥了,雖然插件真TMD的豐富,但沒事會出問題,如敲著敲著游標不能移動到右邊,不知道是不是vim插件問題,真的好奇葩,還有沒事會卡下~vs code明顯流暢很多!


為各自 1.0 挑一個 keyword 的話,Atom 是 hackable,VS Code 是 performant。

Sublime 和 Textmate 一樣都是前輩,這裡就不跟以上比較了。


我的主力工作環境是 Xcode,但是每天都要用上半個小時的 Sublime Text。主要用來記 meeting notes,編輯 JSON 、Lua 或者 XML 之類 Xcode 支持得一般的格式,以及做編程的草稿紙。

如果看這篇文章的話:https://medium.com/@caspervonb/why-i-still-use-vim-67afd76b4db6 就發現 Sublime Text 是最佳選擇。雖然作者用的是 Vim,但是 Sublime Text 每一項都是僅次於 Vim,而且遠遠甩開後兩者。

對於大多數開發者來說,主力工作環境依然是 IDE,但是又必須有一個輔助的 text editor。


我是vim黨,所以是按照它們的vim插件成熟度來選擇的

Atom的vim-mode插件最成熟

VSCode的vim插件還欠缺一些,但是已經比幾個月之前好一些了

Sublime的幾年前用過,不滿意

長期來看,如果VSCode的vim插件足夠讓我滿意了,我會轉換到VSCode上,目前還是Atom

VSCode還是改進得很快的,每隔幾個月一看,都改進了好多

為什麼一個vim黨不使用vim?表示我雖然已經習慣了vim風格的操作,但是vim這種純文本在UI展現方式上,還是比不過這幾個

UPDATE:

已經遷移到VSCode大半年了,給力!而且我觀察到周圍的同事大部分都在用。


VSCode 免費,速度也不賴,

寫了一個小的VSCode教程,希望大家多給一些意見:

Visual Studio Code初探

update 2016-04-15 增加:批量選中文本編輯的功能


我個人習慣使用atom,one-dark配色大愛。

並沒有感覺到任何卡頓的存在,一般來說電腦內存8G或者以上都沒有問題,只是打開時間有差。對我來說vs2015、idea、atom、sublime這些東西寫起來都一樣,至於打開時間長一些也無所謂。

唯一能讓我感覺到有種卡的感覺的,就是hbuilder。


Sublime: 非常快,各種插件也相當齊,用起來蠻順手, 缺點是不裝插件很多功能都沒有, 不過本身的包管理器很好用,插件裝多了也不卡


VSCode : 啟動雖然沒 Sublime 快,但集成度相對較高,不裝插件也能用得很爽,尤其是寫JS特別爽。

VSCode 的缺點要另開一行說, VSCode 的 vim 插件實在太爛了!!!!!!

Atom: 短暫試用過一個鍾, 啟動太慢, 打字還稍微掉幀.. 我在 windows 用 Emacs 都比它好.

利益相關: Sublime 重度用戶, 近期寫 TypeScript 頻繁使用 VSCode, Atom 黑, vim 黨, Spacemacs 用戶


vscode 完爆另外兩個,sublime text 不破解一直彈,那個智能提示文件還做了個半殘廢,不好用,不過 sublime 確實顏值比 vscode 好一點,佔用和啟用都比較好,但是打開文件大點,vscode 基本完爆了,語法高亮 vscode 做了延遲載入。atom 我沒懂為什麼大家要用它,用了三天就放棄了,1. 卡,2. 還是卡。

vscode 對 ts 的支持也是天生牛逼撒,這個不說了

對於後端語言的支持和點擊函數跳轉這種常見功能,vscode 也好一些。

對於搜索功能,sublime 的我感覺好一些。

對於編寫代碼高亮,sublime 的皮膚好看一些,vscode 可以安裝,但是好像不太一樣。

React 等框架的插件,vscode 的質量好一些。

vscode 的 FilePeek 功能特別棒。

vscode 有臨時終端使用,方便。

反正最後你找不出什麼理由不用它,另外能做的都能做,並且還有更好的地方。代碼和更新頻繁,有全世界最好編輯器的開發廠商支持,你還猶豫什麼,用吧。

對於後端來說,比如 php ,我還是覺得 phpstorm 好用一些,但是內存確實消耗有點高,平時開發的來說的話,也夠用。


atom…… 好……卡……比……Webstorm……還……卡。

(最新的1.6版)


先說個人喜好,比較喜歡Atom。

1. 插件多,安裝最容易。//對比sublime 我就不想像別人介紹怎麼安裝一個package manager

2. 界面好看,和git集成程度很高。我的文件編輯在line-number左邊看得出來修改/增加/刪除,tree-view文件也標記了顏色對應修改和新增,當文件多找修改過的文件很好識別。 //對比vs code 我要單獨去git 那一欄看。

3. 還有一些小細節,比如支持atom命令,atom xxx 就打開了。比如默認提示的水平比sublime 好,可以跨文件。當然這些細節sublime/vs也能實現,但是我不想自己配置。

---------------

慢倒是不是很慢,但是經常崩潰。 // 相比我覺得為了上面幾點我還是願意用atom。


Sublime Text我用了四年,Atom前些時候用了倆月,前幾天因為卡爆了,體驗了VS Code,現在感覺VS Code最爽。我從一些方面對比了這三個編輯器(只是自己日常使用中的範疇,不是最全面的評測):

Sublime Text 簡潔,速度快;

Atom 在界面友好度、git和Markdown方面比較好。但是Atom太慢了,甚至不知道自己什麼操作會導致突然卡爆;

VS Code 速度較快,而且有不少地方比其他兩個更好。我最喜歡的是VS Code。

ps:

我工作電腦的配置是I3 6100、128G SSD、8G內存。Atom還是時不時卡頓,某些特殊操作甚至忽然卡爆。但是Atom也沒把各項資源佔滿,就很氣。在末尾我附上一個操作,我這裡Atom這樣操作必然卡爆,其他兩個不會卡。

下面這個文件是600多條url列表,它們的前半部分都是相同的。選擇其中一條的前半部分,然後按Alt+F3來選中文件中所有的相同部分。這時Atom立刻卡爆,更別說隨後的刪除、移動游標等操作了,動一下卡10秒。其他兩個編輯器根本不卡的。

https://pan.baidu.com/s/1pL3LK3hpan.baidu.com


  • Atom 的唯一缺點就是卡,其他還好

  • VSCode 不卡,但是定製性比不過 Atom,好在現在開源了你可以去敲開發組。調試器是個亮點,不過插件還不完善

  • Sublime……作者之前消失多久了來著?現在更新比不上另外兩個,而且它要錢好吧


推薦閱讀:

VScode 不能自動補全結束標籤?
vcxsrv轉發vbox的vs code莫名卡頓,誰的鍋,怎麼解決?
什麼編輯器適合寫Vue?
visual studio code 可以配置c++ 一鍵編譯運行嗎?
為什麼visual studio code 沒有uwp版本?

TAG:文本編輯器 | SublimeText | Atom文本編輯器 | VisualStudioCode |