电脑之家
柔彩主题三 · 更轻盈的阅读体验

Emacs写代码怎么样?老程序员用了十年的真实体验

发布时间:2026-04-20 09:30:33 阅读:5 次

朋友前两天问我:‘听说Emacs代码很牛,但界面看着像上古文物,现在还值得学吗?’我敲着键盘回他:‘刚用它改完一个Python脚本,顺手查了下Git日志,又切到Shell里跑了遍单元测试——全程没碰鼠标。’

不是编辑器,是‘可编程的环境’

很多人第一次打开Emacs,看到满屏快捷键提示和状态栏里的C-x C-fM-x就懵了。其实它不像VS Code那样点点就能跑,但正因如此,你写的每行代码、开的每个终端、查的每次文档,都能被自己定义的行为串起来。

比如写Go项目时,我按C-c C-t自动跳转到测试函数,C-c C-r只运行当前函数的测试——这功能不是插件自带的,是我抄了三行Elisp,粘进~/.emacs.d/init.el里存成的。

真实场景里它怎么干活?

上周修一个爬虫Bug,需求是:从10个HTML文件里提取所有<a href="...">链接,去重后导出为CSV。我在Dired模式(Emacs的文件管理器)里框选全部文件,C-SPC标记,C-x C-e执行一段小脚本:

(dolist (f (dired-get-marked-files))
(with-current-buffer (find-file-noselect f)
(goto-char (point-min))
(while (re-search-forward "<a href=\"\([^\"]+\)\">" nil t)
(push (match-string 1) links))))
(write-region (mapconcat #'identity (delete-dups links) "\n") nil "links.csv")

不到20秒,CSV生成完毕。中间还顺手用C-c C-p调出Python shell,验证了正则逻辑。

它不香的地方也得说清楚

新手上手慢是真的。配色方案要自己挑,字体大小要手动调,连保存文件都得记C-x C-s(Ctrl+X再Ctrl+S)。有次帮同事调试,他死活找不到‘撤销’在哪——Emacs里是C-/,不是Ctrl+Z。

还有些硬伤:对中文输入法偶尔抽风,远程SSH开发时偶尔卡顿,大型前端项目加载TS语言服务比VS Code慢半拍。这些不是不能解,但得花时间折腾,不是点几个按钮的事。

适合谁用?

如果你常写脚本、处理文本、需要快速切换上下文(比如一边看日志一边改配置一边跑命令),Emacs就像一把磨得锃亮的瑞士军刀;如果你主要写Unity Shader或者天天拖控件做UI,它反而添乱。我见过用它写Rust的,也见过用它写LaTeX论文的,甚至有人拿它当邮件客户端+待办清单+RSS阅读器——关键不是它能干啥,而是你愿不愿意让它变成你手指的延伸。

最后说句实在的:别把它当‘终极编辑器’来膜拜,就当它是台可定制的打字机。装好之后先忍三天不装任何插件,把C-g(取消)、C-s(搜索)、C-w(剪切)练熟,再谈宏、再谈LSP、再谈Org Mode记笔记。