emacs-101-beginner-survival-guide

by emacs-tw

Emacs 101 新手求生指南 - 一本讓你學 Emacs 不再學得靠北靠母的美好的新手求生指南

460 Stars 69 Forks Last release: Not found 133 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

  • Emacs 101 新手求生指南 一本讓你學 Emacs 不再學得靠北靠母的美好的新手求生指南。

+BEGIN_QUOTE

** 一些懺悔 這是寫完這本小書的三年後對於這本書的懺悔。

用了也六年的 Emacs、寫過十幾個 Emacs 外掛,我想現在的我應該有點資格說這些話。

不瞞各位說,我自己用 Emacs 的機會越來越少了。原因無他,就是 Emacs 在寫程式這點確實比不上 VSCode 了,跳到 VSCode 三個月後,我的日常工作裡 Emacs 只拿來做寫程式以外的任務(Magit, serial-term 之類的),而且完全不會懷念用 Emacs 寫程式,轉換的陣痛期也出乎意料的小 -- VSCode 的優勢實在太多了,感謝上帝讚美拯救蒼生的微軟。

在你決定學習 Emacs 之前,就讓我幹譙一下 Emacs,目前在 Emacs 裡面搞過 C++, Python, JavaScript, TypeScript 的自動補全與重構(其實搞過的開發環境不只這幾種語言,但這幾種語言我都有寫了一定的時間比較理解),都很難搞,而且最終弄出來的效果也都沒有 Qt Creator / PyCharm / VSCode 好(大概差了八九六四個光年吧),不是常常罷工、甚至根本卡頓到不堪用。就算只是想寫個 web,vue, scss, pug / jade 和 stylus 這幾個需要的 major-mode 我都直接自幹要不然也 hack 過,現有的都超難用要不然就是 bug 滿天飛,搞了兩三年發現用 VSCode 隨便滑鼠點一點裝好 plugins 還不用動設定的開發環境都比目前Emacs上各式現有package與自己土炮出來的好用太多...

就算以上都順利裝好、TypeScript 支援就是沒 VSCode 強大(lsp-mode 是完全跑不起來,eglot-mode 則是極度卡頓、一直把你的按鍵輸入吃掉挑戰你的 EQ 底線)、C/C++ 支援就是沒有 QtCreator 或 VisualStudio 那樣的行雲流水(更別說現在有 clang 語意分析加持的 QtCreator 跟那好用到爆的 UI 搭配)。你可能會說這些本來就不是編輯器該做的事情、Emacs 不是 IDE...但畢竟我是要工作寫程式不是在玩遊戲啊,工作效率才是最重要的,我根本不想管 Emacs 定位是編輯器還是 IDE。

就算只是編輯器好了,舉個實際例子:我常常在寫 pug/jade,但現有的 jade-mode 和 pug-mode 都充滿缺陷到讓人訝異(因為在這之前我沒有寫過這類型的 major-mode, 後來頭洗下去研究才發現這兩個 mode 的作者根本連 syntax-table / =modify-syntax-entry= 的參數意義都理解得一塌糊塗),因為實在受不了所以花費了幾個禮拜寫了 [[https://github.com/kuanyui/yajade-mode.el#known-bugs][yajade-mode]] (同時也寫了 [[https://github.com/kuanyui/cakecrumbs.el][cakecrumbs.el]] 來輔助),沒寫不知道,一寫才發現原來 Emacs 對 syntax 的支援是如此...簡陋,以至於後來發現除非你真的像 =js2-mode= 那樣自己寫 lexer / parser 自己上色,否則 pug/jade 的支援就是無解。

後來試試 VSCode,一裝好,哇好流暢的自動補全啊(Company 實在有夠慢),哇code 不用外掛就可以折疊耶、哇 TypeScript 補全超聰明還會自動 import 耶、哇寫 Vue 時編輯器可以直接理解

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.