2.5小时用Emacs打造工具,轻松玩转GitHub issues,可塑计算能力揭秘!

发布时间:2026/7/24 2:47:41
2.5小时用Emacs打造工具,轻松玩转GitHub issues,可塑计算能力揭秘! 需求剖析2026年7月22日Charles Choi在日常任务中用GitHub issues跟踪问题却倾向于用Org Agenda管理事务手动复制GitHub issue到Org文件。他想自动化此过程文章将展示Emacs可塑计算能力也是之前《[在Emacs中一切皆服务](./in-emacs-everything-looks-like-a-service.html)》的后续。自动化操作有两个关键问题一是想达成的目标包括将GitHub issue复制为Org任务、主要在Emacs操作等二是不想做的事如安装或编写GitHub客户端等。规格规划明确需求后决定利用GitHub命令行工具 [gh](https://cli.github.com)其好处是GitHub认证由 gh 处理Emacs可把 gh 当作GitHub的REST服务。还可使用不同Elisp包和程序完善工具如用 [Transient](https://www.gnu.org/software/emacs/manual/html_node/transient/) 和 [Variable Pitch Table (vtable)](https://www.gnu.org/software/emacs/manual/html_node/vtable/) 实现菜单和显示功能等。功能实现上述功能作为 [fj](https://github.com/kickingvegas/fj) 包发布源代码在 [fj.el](https://github.com/kickingvegas/fj/blob/main/lisp/fj.el) 文件。fj-request-issues 函数通过 gh 获取GitHub issues抽象程度高操作不到20行代码。返回的哈希表结果处理后填充vtable用户可浏览issue列表并查看详细信息还编写了相关命令和函数可通过Transient菜单访问。可塑计算观察由于Elisp是动态编程语言函数可在运行的Emacs会话中编写和评估无需重启即可原型设计与静态语言构建的工具形成对比。Emacs提供多种编辑和评估Elisp代码的方式加载的代码可临时组合借助高度抽象功能实现所需功能代码量少fj.el 约400行代码。他花2.5小时实现基本功能后续满足需求和重构代码。软件范围与百分比轶事[90/90规则](https://en.wikipedia.org/wiki/Ninety–ninety_rule)和 [帕累托原则](https://en.wikipedia.org/wiki/Pareto_principle)在软件开发中有体现结合 [有界输入有界输出BIBO稳定性](https://en.wikipedia.org/wiki/BIBO_stability)若功能在可交付的20%范围内可能更快获得预期结果。但对满足大量用户需求的工具开发者来说不常见如微软Office产品定义有问题。讨论产品定义要区分供应和需求仅供应商提供的软件开发者承担重任可塑软件用户可自主调整开发者和用户角色界限不明显。为1或N而构建为1个用户和为N个用户构建软件范围可能相差大选择为他人编写代码会引发错误处理等问题。可塑技术允许实现“足够好”的功能鼓励为1个用户构建软件对仅供应商提供的软件为N个用户构建必要对可塑技术构建的软件是选择。可塑软件与用户自主性在Emacs中实现 fj 简单可利用Elisp包和外部应用程序一天内有满足需求的工具无需许可和特权材料。现在在Emacs中可轻松浏览GitHub issues、复制issue到Org文件等可塑技术赋予个人自由。结束语本文探讨Emacs可塑计算能力通过 fj.el 示例展示复用代码和程序创建新功能合理预期下可塑技术能构建难实现的工具。链接-- 《[什么才是真正的软件臃肿](https://hardcoresoftware.learningbyshipping.com/p/077-what-is-bloat-really?sw)》作者Steven Sinofsky。[emacs](tag/emacs.html) [org mode](tag/org-mode.html)[在Emacs中一切皆服务 -](in-emacs-everything-looks-like-a-service.html)