008. Emacs 之光的成长历程

EmacsTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻

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

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

时间线

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

Show Notes

  • 嘉宾自我介绍

    • 网络 ID: casouri
    • 17 年大一开始接触 Emacs ,到现在差不多四年
    • 个人博客
    • 配置 lunarymacs
    • 对 Emacs 仓库的提交记录
  • 28 版本新增的 shortdoc,解决手册冗长,提供简洁的示例代码
  • 正则表达式两处文档:

    • 只介绍如何写正则的 34.3 Regular Expressions
    • 15.5 Regular Expression Search 这一小结介绍正则相关函数
  • 嘉宾对 Emacs 的主要 patch:

    • Improve word wrapping for CJK characters
    • Add filter to GDB's register buffer
  • Emacs 代码规范

    • 注释都是完整句子,最后有个句号,句号后两个空格
    • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 //
    • 函数名后面跟一个空格,再是括号
  • 读 Emacs 源码技巧

    • lisp.h 里面有 C 如何调用 ELisp 的示例
    • 去 devel 邮件列表咨询,还可以练习英文表达能力
    • ccls + grep + ctags
    • 通过搜索相关功能来探究其个函数的用法
  • 嘉宾的分享

    • aggressive-indent-mode
    • Practical Typography
  • 主播的分享

    • 关注牙齿健康,最好每年去看一次牙医

收听方式

  • 国内:小宇宙、微信公众号、

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada