vlambda博客
学习文章列表

008. Emacs 之光的成长历程


本期节目请来了一位特殊嘉宾–付禹安,社区内一般称他为『Emacs 之光』。之所以这么称呼,是因为今年才刚刚大学毕业的他,就已经给 Emacs 贡献了多次代码。👍

与大多数用户不同,嘉宾在接触 Emacs 不久即开始尝试攒写自己的配置,并陆陆续续发布了几个比较实用的包,比如 valign[1],嘉宾是如何做到的?更令人好奇的是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾的学习、贡献经历,可以给听众打开 Emacs 源码的神秘面纱,让更多用户参与到 Emacs 的贡献中,一个多小时的分享,精彩不容错过。


时间线

 00:00:56 嘉宾自我介绍 00:02:20 Emacs 初相识 00:10:08 ELisp 学习经历 00:15:45 Emacs 的可发现性 Discoverability[2] 00:23:58 源码贡献经历 00:27:32 源码贡献流程介绍 00:38:15 如何读懂 Emacs 源码 00:57:59 嘉宾的第一个 Emacs patch 01:02:34 分享环节

Show Notes

嘉宾自我介绍 网络 ID: casouri[3] 17 年大一开始接触 Emacs ,到现在差不多四年 个人博客[4] 配置 lunarymacs[5] 对 Emacs 仓库的提交记录[6] 28 版本新增的 shortdoc[7],解决手册冗长,提供简洁的示例代码正则表达式两处文档: 只介绍如何写正则的 34.3 Regular Expressions[8] 15.5 Regular Expression Search[9] 这一小结介绍正则相关函数嘉宾对 Emacs 的主要 patch: Improve word wrapping for CJK characters[10] Add filter to GDB's register buffer[11]Emacs 代码规范 注释都是完整句子,最后有个句号,句号后两个空格 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // 函数名后面跟一个空格,再是括号读 Emacs 源码技巧 lisp.h[12] 里面有 C 如何调用 ELisp 的示例 去 devel[13] 邮件列表咨询,还可以练习英文表达能力 ccls[14] + grep + ctags 通过搜索相关功能来探究其个函数的用法嘉宾的分享 aggressive-indent-mode[15] Practical Typography[16]主播的分享 关注牙齿健康,最好每年去看一次牙医

Get in Touch

引用链接

[1] valign: https://github.com/casouri/valign
[2] Discoverability: https://wikemacs.org/wiki/Discoverability
[3] casouri: https://github.com/casouri
[4] 个人博客: https://casouri.github.io/
[5] lunarymacs: https://github.com/casouri/lunarymacs
[6] 提交记录: https://github.com/emacs-mirror/emacs/commits?author=casouri
[7] shortdoc: https://emacstalk.github.io/post/002/
[8] 34.3 Regular Expressions: https://www.gnu.org/software/emacs/manual/html_node/elisp/Regular-Expressions.html
[9] 15.5 Regular Expression Search: https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Search.html
[10] Improve word wrapping for CJK characters: https://github.com/emacs-mirror/emacs/commit/0d1ca2ac3805443690f3bcb6877251d9b74902c9
[11] Add filter to GDB's register buffer: https://github.com/emacs-mirror/emacs/commit/7c83e605ab84e8b62254c55f347abc8aa9c6057b
[12] lisp.h: https://github.com/emacs-mirror/emacs/blob/master/src/lisp.h
[13] devel: https://lists.gnu.org/archive/html/emacs-devel/
[14] ccls: https://github.com/MaskRay/ccls
[15] aggressive-indent-mode: https://github.com/Malabarba/aggressive-indent-mode
[16] Practical Typography: https://practicaltypography.com/
[17] 530146104: https://jq.qq.com/?_wv=1027&k=9tAXJ8gG
[18] 「❤️发电」: https://afdian.net/@emacstalk