當前位置:
首頁 > 知識 > 放棄 VSCode,再次選擇使用十年之久的 Emacs

放棄 VSCode,再次選擇使用十年之久的 Emacs

放棄 VSCode,再次選擇使用十年之久的 Emacs

放棄 VSCode,再次選擇使用十年之久的 Emacs

幾個月前,我決定從 DevOps 轉投使用 JavaScript 進行 Web 開發。起初我打算繼續使用 Emacs 編輯器,但是相比於 Python,它對 JavaScript 的支持很差勁。我浪費了至少一天的時間配置 Emacs,以便支持 JavaScript 中的代碼補全和語法檢查功能。就在此時,我讀到了一篇博客,其作者放棄了使用十年之久的 Emacs,而選擇使用僅僅接觸了一周的 VSCode。因為我自己使用 Emacs 的時間也有十年之久,這篇博客的標題給我的印象極其深刻。於是我決定全心全意投身 VSCode。

我立刻驚訝地發現 VSCode 對 JavaScript 語言、庫和 Web 環境的支持都很好。所有關於 react 、Vue.js、Electron 的教程都推薦使用 VSCode。VSCode 的語言支持非常棒,我懷疑沒有其他編輯器能夠在這方面與之媲美。但同時,我立刻發現了一個非常重要的痛點。Emacs 的鍵綁定隨處可用,比如 shell、瀏覽器,等等。在 OS X 上,Karabiner 會自動映射那些綁定,這在 GNOME 的 linux 筆記本電腦上是一個頂級功能。VSCode會不斷地意外關閉編輯器,或者需要多次使用命令刪除緩衝區中的文本。以下是其常用的一些命令:

  • M-f 前進
  • M-b 後退
  • C-w 剪切文本
  • M-w 複製文本
  • C-空格 開始選擇
  • C-a 移動到行首
  • C-e 移動到行末
  • M-a 段落回退
  • M-e 段落前進
  • C-s 向前搜索
  • C-j 更改緩衝區

我發現一個用於 VSCode 的 Emacs 插件,但它只支持部分命令,並且引入了一些煩人的 Bug,這使得插件帶來的麻煩比它的價值更多。

於是我徹底放棄了 Emacs 插件並嘗試適應 VSCode。起初它的確有用,但很快就遇到了障礙。作為開發人員,我們需要做很多與項目相關的事情,例如:

  • 使用 Git
  • 重命名文件,並移動它們
  • 維護個人的待辦事項,把錯誤信息和排除故障的方法記錄到個人日誌中
  • 執行 shell 命令
  • 用 markdown、ReST、asciidoc 來編寫文檔

儘管 VSCode 對這些功能有一定程度的支持,但我發現這些領域的 VSCode 插件仍然很匱乏。例如,我發現與 Emacs 的 Projectile 相比,Project Manager 與它的差距非常大。儘管自從我幾個月前使用它以來,Project Manager 插件已經有了顯著的改進。與 Emacs 的 Git 界面相比,VSCode 的 Git 插件也顯得很蒼白。

因此,儘管我主要使用 VSCode 來編寫 JavaScript 代碼,但我仍然發現自己有30-50%的時間在使用 Emacs。VSCode 中的鍵綁定與我的其他工具之間並不匹配,這讓我束手束腳。

到目前為止,我已經談了很多 Emacs 擁有但在 VSCode 中並不具備的功能。VSCode 團隊擁有廣泛的開發人員資源,那麼它能夠實現出比 Emacs 更好的功能嗎?不排除這種可能,如果他們做到了我將會無比驚訝。

使用了 VSCode 一個月後,我決定重新使用 Emacs 的 JavaScript 版本。我了解到神奇的Tide 模式,我花了大約一天的時間熟悉它並對其充滿好感。雖然它無法和 VSCode 相提並論,但它提供了足夠的功能來方便開發者編寫 JavaScript 代碼。

Tide 模式提供的功能有:

  • 代碼自動補全
  • 錯誤檢測
  • 語法檢查
  • 文件點
  • 基本的重構

使用 Tide 模式的一些注意事項:

放棄 VSCode,再次選擇使用十年之久的 Emacs

  1. 你必須將 jsconfig.json(對於 JavaScript)或 tsconfig.json(對於 TypeScript)放入項目才能使用它。
  2. 你必須將 typescript 安裝到項目中才能以最佳方式工作。因為它需要利用 TypeScript附帶的 tsserver 功能。請注意,它不需要項目依賴項。你可以通過執行指令 `npm install typescript` 來安裝它。
  3. 我正在使用 Emacs 26, 我不知道它相比 Emacs 25 有哪些優點。
  4. 我沒有找到一個在常規 .js 擴展名的文件中完全支持 JSX 的好方法。到目前為止,我只是簡單地將包含 JSX 的文件命名為 .jsx,以使 web 模式和Tide 模式正常工作。

我相信 TypeScript 附帶的 tsserver 是由製作 VSCode 的同一團隊開發的。我打算用 Emacs 來代替 VSCode 也是源於其開發團隊。

VSCode 是一個出色的 IDE,我建議軟體開發新人使用它。但是對於我來說,有了 Emacs 出色的 Tide 模式,我是不再需要 VSCode 了。如果你想使用 Emacs,可以參考我為 JavaScript 做的 emacs 配置。

在以下方面我還沒有找到一個好的解決方案,我希望聽到讀者的意見。

  • 調試,我仍然使用 VSCode 但是也了解了 ndb,不知道是否有必要替換。
  • HTML 元素與 CSS 屬性,我最喜歡的一個 VSCode 功能是它支持 CSS 和 HTML 內聯文檔,但我對這些技術的細節沒有深入研究。
  • 在 Emacs 中瀏覽 Mozilla、CSS 文檔,關於此是否有好的解決方案?iirc helm-dash 提供了一些有用的東西,但我還沒有認真研究它。
  • Flow 的自動補全和錯誤檢測,我不使用 flow,但我非常想為 Ledger 的桌面應用程序做貢獻,而它使用 Flow,因此我不得不學習 Flow。

非常感謝 Anantha Kumaran 提供的 Tide 模式,否則,我仍然被困在 VSCode 中。

原文:https://hotair.tech/blog/goodbye-vscode/

作者簡介:Bryan Willson Berry,是一名專業軟體工程師,目前住在泰國曼谷。對金融和軟體技術著迷,特別是區塊鏈技術對全球金融體系的潛在破壞性影響。

譯者:安翔,責編:屠敏

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

教你用 100行Node.js 代碼,快速構建一個靜態網站生成器!
程序員用Python分析徐崢,竟研究出《我不是葯神》30億票房真正秘訣!

TAG:CSDN |