文章摘要
Emacs不仅允许深度自定义,还积极鼓励用户进行彻底的个性化改造。其核心功能不仅详细文档化,还提供扩展建议,甚至提供强大的工具如advice-add,让用户能够覆盖任何函数,赋予无限的自定义能力。Emacs的设计理念是让用户拆解并重新组合,与其他仅支持脚本扩展的系统形成鲜明对比。
文章总结
Emacs:一场范式转变
最近,我阅读了一篇关于如何扩展Emacs的初学者指南。这篇指南非常适合初学者学习elisp,并且详细介绍了如何与Emacs进行交互。然而,对我来说,最重要的部分来自名为Emacs希望你扩展它的章节。
Emacs不仅提供了深度定制的可能性,还积极鼓励你进行彻底的定制。核心编辑器功能不仅被详细记录,还经常包含一些提示,比如“你可能想看看这个变量”或“这是你应该如何使用这个功能的方式”。
不仅如此,Emacs还提供了像
advice-add这样的强大功能,允许你覆盖任何函数,虽然使用不当可能会彻底破坏你的编辑器,但这也赋予了你无限的力量。记住,Emacs的设计初衷就是被拆解和重新组合。
这是文章的核心论点。Emacs作为一个系统,希望你扩展它,并为你提供了所有必要的手段。这与那些虽然可以通过脚本扩展,但并未提供所有扩展手段的系统形成了鲜明对比。
为了进一步说明这一点,作者通过一个具体的例子展示了如何利用Emacs的标准扩展点来自动排序org-mode中的阅读列表。作者希望每次保存org文件时,条目能自动按年份排序。通过编写一个简单的函数org-sort-run,并将其添加到before-save-hook中,作者实现了这一功能。
然而,作者进一步展示了如何在不修改org-mode代码的情况下,通过Emacs的扩展性来实现更复杂的功能。具体来说,作者通过在org文件的头部添加#+SORT: year的指令,并利用advice-add在org-set-regexps-and-options函数调用后执行自定义的排序逻辑,成功实现了这一目标。
最终,作者得出结论:尽管org-mode本身并未提供直接的扩展点,但Emacs的强大扩展性使得用户仍然能够实现自己的需求。Emacs的设计理念就是鼓励用户进行扩展,并为此提供了所有必要的工具。
总结
作者通过一个看似“糟糕”的hack成功实现了目标,尽管这并没有让他深入了解org-mode或Emacs的文件访问扩展点。这再次证明了Emacs的核心设计理念:它希望你扩展它,并为此提供了无限的可能性。
评论总结
评论内容总结:
计算机使用模型的偏好
- 主要观点:评论者skydhash认为理想的计算机使用模型应具备简单的系统,同时能够灵活适应个人需求。他提到BSD、Emacs和Smalltalk等工具,认为许多计算机问题早已解决,重点应放在改进和创造新工具上,而非重复发明。
- 关键引用:
- "The model of computer use that appeals to me are the one that in theory have a simple system, but the real goal is for you to have a tool that fits your needs."
- "the focus should be on improving and creating new tools, not reinventing them."
Emacs的使用体验
- 主要观点:alexkehayias分享了他多年使用Emacs的经验,强调他并不关心Emacs的内部机制,而是通过最小化修改使其适应自己的需求。他提到通过修改Elisp代码来优化性能,即使可能影响其他功能,但只要满足个人需求即可。
- 关键引用:
- "I seldom care about the inner workings of emacs and will do the absolute minimum to get it to work the way I want and then move on."
- "Might this break some other deeply intertwined behavior someplace else? Probably. Does it matter if I'm the only one using it? Nope."
Emacs的长期价值
- 主要观点:imiric认为学习和使用Emacs对于从事文本工作的人来说具有极高的长期回报率。Emacs的定制化特性使其能够不断优化工作流程,形成一个独特的、符合个人需求的系统。尽管Emacs存在学习曲线陡峭、功能落后等问题,但其稳定性和可定制性使其在软件频繁变化的环境中显得尤为珍贵。
- 关键引用:
- "Every time you modify it, you are improving your workflow. Those changes compound over time so that the system is always familiar."
- "using your own version of Emacs is incredibly comforting. There are no surprises, no rugpulls, no radical UI redesigns."
总结:评论者们普遍认可Emacs等工具的灵活性和可定制性,认为它们能够有效满足个人需求并优化工作流程。尽管这些工具存在学习曲线陡峭、功能落后等问题,但其长期价值和稳定性使其在计算机使用中占据重要地位。