歡迎新人
非大佬,但以前也寫過這類問題的回答:
但我以前的回答比較抽象,具體到特定的功能的話……我先問下 AI:Emacs 有什麼 vim/vscode/neovim 等沒有的常用功能嗎?
ChatGPT 的回答放到最後,我覺得總結得還不錯,自己再補充一些:
-
wdired 這類,把某個命令的結果當作 text 編輯、保存、生效,可以極爲容易地批量修改文件名、在多多文件中替換文本等
-
emms 等,直接在 emacs 中做各種音樂播放的處理,例如從 dired 中選中後直接生成 playlist 播放 → 在一個插件中積累的經驗往往可以在使用另一個插件時疊加,類似的例子如 magit commit 時用 flyspell 做拼寫檢查,而 flyspell 又可以做很多配置……company、yasnippet 等同理
-
org-mode 和其生態,例如 org-capture 隨時記錄想法、org2blog 把文章輕鬆發佈到 wordpress、org-publish 制作靜態網站(又可以利用 pandoc 轉成 epub 電子書)、與 gpg 結合成爲日記軟件(直接編輯 gpg 文件好像是 emacs 特有的)、與 orgzly (Android)結合作爲手機筆記軟件(電腦端、移動端一體的知識管理系統、calendar 系統)、org-remark 作爲閱讀筆記軟件(我把電子書轉成 html,然後用 hack 過的 eww 打開,再用 org-remark-eww-mode,而因爲 Android Emacs 的存在,同樣的方案在手機上也能用,產生的筆記是純文本,便於搜索、直接看)……
-
keepass mode 作爲一個簡單的鍵盤操作的 keepass 密碼管理器
-
基於拼音首字母、雙拼字母等搜索(我是用 pyim 實現的)
-
輸入法,我用魔然(自然碼的一個變體),加上 emacs-rime 的探針之類的功能,文字錄入體驗甚佳
-
lisp 編程的體驗大概是最好的?至少是之一
-
gdb-many-windows + eglot + citre,對我偶爾 hack C/C++ 而言很好用 → 非特別優勢,只是說我需要的功能 emacs 能做到
-
elfeed(RSS 訂閱)、email、IRC、Telegram、Matrix 等
這個列表可以列很長,單是 org-mode 就還有很多,但我想最主要的是:
- emacs 本質上是一個 lisp machine,幾乎想改什麼改什麼,改完立刻可以驗證,對於 hack 一些自己想要的功能非常便宜
- 很多功能一旦掌握了,就可以與其他功能疊加使用(應用於同一抽象層),在使用的過程中又對這些已經掌握的功能變得更熟悉,一次投資,長遠收益,而且是複利
- 長久以來積累了很多好用的功能
這三者相輔相成,互相促進
ChatGPT 的回答:
有,而且是結構性差異,不是插件能完全補齊的那種。重點如下:
1. 同一語言(Elisp)貫穿「用/改/擴」
- Emacs 的配置、命令、插件、即時改行為,全是 Emacs Lisp。
- 不是「寫配置」而是「改正在跑的程式」。
- Vim/Neovim:Lua/Vimscript + 外部插件邊界明顯 VS Code:API + JSON + TypeScript,重啓/Reload 成本高
結果:Emacs 能做到 live system hacking。
2. 真正的「可編程編輯器」,不是插件平台
-
任何操作=函數=可組合
-
任意命令可:
- 記錄(kmacro)
- 改寫
- 掛 advice
- 動態替換
在 Vim/VSCode,很多核心行為是「不可攔截黑盒」。
3. Org-mode:不是 TODO,而是一個 DSL
Org-mode 是 Emacs 獨有,且不可被等價複製:
-
文檔 = 結構化資料
-
同時是:
- 任務管理
- 筆記系統
- 表格 / 輕量資料庫
- Literate programming(Babel)
- 發佈系統(HTML / PDF / EPUB)
VS Code / Vim 的 markdown + 插件 ≠ Org-mode。
4. Magit:Git 的「語義級 UI」
- 不是「git 命令包一層 UI」
- 是把 Git 抽象成操作狀態機
- 每個操作可回溯、可組合、可精確控制
很多資深 Git 用戶在 Emacs 才「真正理解 Git」。
5. Buffer ≠ 檔案(核心觀念差異)
- Emacs 操作的是 buffer
- 檔案、shell、REPL、log、diff、help 都是 buffer
- 同一套鍵位 / 編輯模型適用所有東西
VS Code / Vim:
- 檔案是核心
- 其他東西是「面板」「特殊視圖」
6. 長時間運行的個人計算環境
- Emacs 常年不關
- 累積狀態、歷史、上下文
- 像一個「個人 OS 內核」
Vim/Neovim 偏 session VS Code 偏 project lifecycle
7. 非文本任務也能「一等公民化」
- Email(mu4e / notmuch)
- IRC / Matrix / Telegram
- RSS
- 日程
- 文件管理
- 甚至 window manager(EXWM)
不是「整合」,是「同一抽象層」。
一句話總結
Vim / Neovim / VS Code:高效的編輯器 Emacs:一個你可以隨時間「長成自己形狀」的可編程系統
如果你只是「寫代碼」→ 不一定需要 Emacs 如果你想把 寫作 / 研究 / 任務 / 思考 / 系統操作 合成一個可演化工具 → Emacs 幾乎唯一選擇