為什麼vscode很多人用?

大家覺得好用嗎?


JB 家族收錢啊。

說起來這種「甜品級編輯器」的前兩代——TextMate 和 Sublime Text 也都是收費軟體,結果更好的新產品一出馬上市場就給搶光了。

細列一下三代甜品級編輯器帶來的特性吧:

  • TextMate
    • 「甜品級編輯器」這個細分市場
    • Snippet
    • TmLanguage 和靈活的 scope 機制
  • Sublime Text(2 開始)
    • 跨平台
    • 多游標 —— 這玩意不一定是 ST 發明的,但絕對是 ST 發揚光大的
    • Minimap
    • 快速跳轉
  • VSCode
    • 標準化 Language Service Protocol
    • 內置調試器和標準化 Debugger Adaptor Protocol —— 所以 VSCode 可以跨界搶 IDE 的市場……
    • 「比較正常的」內文 Text Layout(雖然依然很爛,但畢竟是用上了 Chromium)

如果問第四代編輯器會有什麼功能……我最想要的是能把 bidi 和 shaping 做對,然而要實現這個十萬行 C++ 是少不了的。考慮到 VSCode 那個可以換頭的架構,搞不好他們會帶頭跳坑。


單純問好不好用?我覺得目前還沒有特別好用,或者說在一些細節上,目前它還沒有達到專業IDE的水平。

但為什麼很多人用,因為它很有前途,很有潛力。

它的架構決定了只要給與足夠時間,或許能成長為 vim/emacs 那樣的巨無霸,而目前流行的各種其它 IDE,都沒有這種潛力。

一個有潛力的工具是值得投資時間去學習的。因為人類的壽命可能很長。去學習一項淘汰概率更低的技術往往很值得。


最大的好處我覺得是在一個編輯器環境中解決了幾種語言的不同開發環境分裂的問題。

JB家的我只輕微使用過PyCharm。vim和sublime text也使用過一段時間。就以這些軟體和vscode的對比為例來說明vscode的優勢吧

首先pycharm只支持python,如果你想寫其他語言,那對不起,只能換開發環境,雖然JB家也有其他語言的ide,但每個都過於重量級,在多個語言之間跳轉並不方便。

vim我只用來作為編輯器使用,vim的優勢是可以方便的在遠程伺服器上開發,但想把vim配置成ide,過程也是及其繁瑣和複雜的。而vscode可以在實現遠程開發的同時保持簡單優雅的配置。

sublime text我用過很長時間,一度我只用這個編輯器來寫各種語言的代碼。subl的優勢是速度和豐富的插件擴展性以及優秀的跨平台特性,vscode很大程度上繼承了這些優點。但subl是獨立開發者寫的,更新速度還是過慢了,插件質量比vscode差一些(至少python的擴展vscode更好),另外最重要的是subl是收費軟體。相反vscode的更新速度相當快,而且vsc的幾個重要插件都是官方維護的,而且開源跨平台,官方維護的插件質量有保證。

寫幾個我自己的應用場景!我的需求是以python為主,同時用到Julia,C甚至是Matlab等不同語言,python下的工作模式經常在jupyter notebook文件和腳本文件之間切換,還需要在本地寫完代碼推到遠程伺服器上加快計算,另外還需要在各種場景中方便的調試代碼。在沒有vscode之前,python需要在pycharm中寫,Matlab在自帶ide中寫,Julia在atom中寫,C用VS寫,遠程伺服器上需要用vim來寫;本地jupyter notebook調試基本靠print;遠程調試基本靠pdb在shell中完成,遠程所有操作都以來ssh和命令行完成。當然pycharm有遠程調試和jupyter支持,但我沒配置成功過!看著都心累啊。

有了vscode,上述所有需求都在一個軟體里完成,雖然一些插件體驗還比較差,但至少可以用,配置這一個軟體相當於配置上述一堆軟體,同時還能保持相當的輕量性,非常適合我的需求。所以我想vscode配置之所以複雜可能是用一個軟體加若干插件完成了上述所有軟體的基本功能吧


為什麼vscode很多人用?

簡單:免費+好用+功能強大+性能好 + 其他還很多優勢

詳解:

多年接觸電腦,用過編輯器和IDE,可以說:很多普通開發人員用過的,我或多或少都用過吧。

就不具體列舉了,只貼個我整理的教程的目錄供參考:

具體詳見:

前言 · 編輯器和IDE總結?

book.crifan.com

介紹優勢之前,先介紹總體背景:

VSCode總體定位:7分Editor,3分IDE

對於上述優勢,分別介紹如下:

  • 免費
    • 免費的裡面,雖然有很多好用的,但是各有缺點
      • Win的Notepad++:性能強,功能多,但顏值不高,也不支持其他平台
      • Sublime:顏值高,但是功能總體上算一般
      • Atom:功能一般,有一定用戶量
      • Eclipse家族:功能強,支持插件擴展,但太臃腫,性能差
    • 收費裡面,有很多很強的:
      • JetBrains公司
        • 其下多個著名IDE:
          • Python的PyCharm
          • Java的IntelliJ IDEA
          • PHP的PhpStorm
          • Web的WebStrom
        • 總體都算是:足夠智能,足夠好用,但佔資源有點多
      • -》VSCode誕生了:不僅好用,還免費!
  • 好用
    • 其他常見Editor或IDE的功能,該有的都有了
      • 包括很多不支持的,比如 列模式
      • 包括很多(如Sublime,Atom等)支持的不好的,比如 文件編碼(檢測和轉換)
      • 全局和當前文件的搜索:支持正則功能很完善
        • 我經常用VSCode的正則
  • 功能強大
    • =支持插件擴展
      • 理論上:功能可無限增加
      • 隨便列舉幾個常用的好用的
        • Markdown Preview Enhanced
        • indent-rainbow
        • Bracket Pair Colorizer
        • Paste Image
  • 性能好
    • 用過Notepad++瞬間打開(&>幾百M)大文件的,知道我在說什麼
      • VSCode同樣是類似效果,打開大文件,秒開,爽到爆
      • 且同時開多個窗口,依舊很流暢
  • 其他優勢
  • 多圖
    • 就不重複貼圖了,詳見我在另外帖子的回復:
      • 如何評價 Visual Studio Code? - 知乎

關於VSCode更多的好用之處,詳見教程:

前言 · 史上最好用的編輯器:VSCode?

book.crifan.com


感覺你這小孩子氣的話就好像在說:自己只會 hjkl,所以 vim 垃圾。

你倒是具體說說什麼插件你找不到滿意的,莫不是因為你自己不會配?

被完爆? 來比比主題數量唄?

無腦噴誰不會,會打字就行。

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

以上是最開始的回答。我補充些個人看法,以下內容各位當個笑話看看就好了,純屬個人觀點,有些事情我也是猜的:

我解釋一下為什麼確實有相當一部分VSCode 的插件質量確實不行:

  1. JB 公司的 IDE 是一大幫開發人員拿工資在開發和維護集成的插件,而 VSCode 主要靠開源程序員靠愛發電,而且開源程序員相當一部分人還有工作纏身。你看 VSCode LiveServer 插件的作者都說自己現在很忙,想找人負責維護。還有前不久的那個 stylelint 插件刪庫事件。當然微軟官方的插件質量和維護力度還是相當不錯的。
  2. 開發 VSCode 插件門檻確實比較低。你像插件集合這種插件都不用寫代碼,有些都能獲得上百 k 的下載量。我不說這是類擴展不好,沒有意義,我只是想表達開發門檻低這個事實。VSCode 插件是用 js/ts 寫的,而且 VSCode 這種以命令驅動開發擴展的方式確實讓開發擴展很容易上手。可以嘗試搜一下 open 關鍵字,一堆 open in xxxx 的插件。我覺得有些東西其實官方做起來也很簡單,也不難實現,但是官方就是不集成,導致社區一堆邊邊角角的插件。例如使用外部應用打文件,像我喜歡用 typora 打開 markdown,官方沒這個這麼常見的功能我只能自己造一個插件了:open-in-external-app。
  3. 同類型插件太多,導致拼不過的作者維護動力不足。不過也不一定就是拼不過,也可能是想被別的插件集成。例如 TODO Highlight 和 Todo Tree,前者以及一年多沒維護了,然後後者就前不久集成了 TODO Highlight 的功能,不知道是不是他倆私底下商量過。
  4. 官方逼死同人。據說下個版本的 VSCode 要加入設置同步,不知道現在我覺得非常實用的插件 setting-sync 會受到多大影響,現在這個版本剛加入的 HTML rename tag 功能估計也對現在有的 auto rename tag 插件也有衝擊。因為 VSCode 本身也在不斷完善,不斷加入新功能,很多插件的功能官方就集成了,好像以前有些擴展甚至直接被招安成內建插件了。

我為什麼喜歡 VSCode:

  1. 界面現代化,主題多樣,可定製性高。sublime 沒有 shell 是讓我覺得很可惜的一點。JB 系列的 IDE 完全沒得比,我印象中貌似 IDEA 就一個 material 主題用的人比較多吧,VSCode 不但可以換主題還可以換圖標包,甚至自定義界面的 CSS 和 js。
  2. 免費,你看 MDN 以及很多前端教程都推薦使用 VSCode,一方面也降低了學習難度不是。
  3. 擴展生態強大。我仍然記得我第一次使用 gitlens 的驚艷,居然每一行代碼都給我標出來了是最近一次是誰修改的,什麼時候修改的,簡直是甩鍋利器。雖然我前面說了有相當一部分VSCode 的插件質量確實不行,但是優秀實用有趣的插件也不少,有時間我寫一篇文章介紹下我用的那些插件。
  4. 開源而且官方維護積極。因為是個開源項目,不但可以通過其本身的代碼設計學到很多東西,還可以清楚的看到當前的開發進度,每次更新都能給我驚喜。相比於封閉的商業軟體,我都不知道發的反饋到底有沒有人看。
  5. 開發擴展簡單,我能夠通過擴展去實現我想要的功能。
  6. VSCode 牛逼,實現了很多以前別人想做但是沒做或者說做了也沒火的事情。我覺得 VSCode 遠程開發和雲開發將會改變很多程序員的開發方式。
  7. 我覺得 VSCode 是我用過的代碼編輯工具中快捷鍵設計最合理的,所有的側邊欄快捷鍵都是 alt + shift + xxx,複雜的功能用 ctrl + k ctrl + xxx,這個 xxx 一般是功能首字母,例如快捷鍵表是 shortcut,那麼 xxx 就是 s。而且設置快捷鍵也非常人性化,可以按照各種方式搜索快捷鍵。


推薦閱讀:

IDEA報錯問題

TAG:開發工具 | 代碼編輯器 | VisualStudioCode |