知识卡片
把一切内容都塞进同一种"缓冲区"里,任何命令的输出天然就能成为另一个命令的输入
内容
Emacs显示给用户的几乎所有东西——帮助文档、搜索结果、目录列表、正在编辑的源代码——底层都只是同一种数据结构:一个可编辑的文本缓冲区。这个统一表示带来的直接好处是:用来搜索、剪切、排序、正则匹配文本的那一套基本命令,可以原封不动地用在任何内容上,因为对Emacs来说”目录列表”和”源代码”没有本质区别,都只是缓冲区里的文本。相比之下,大多数图形界面工具(包括很多现代IDE)会给搜索结果、文件列表各自设计专门的、彼此不通用的展示控件,导致这些工具内部的”命令”无法自由组合。这提示一个判断系统可组合性的角度:不是看它提供了多少功能,而是看它内部有多少种彼此不兼容的数据表示方式——表示方式的种类越少,能自由组合出的新用法就越多。
参考来源
《架构之美》第11章《GNU Emacs:滋长的特性是其优势》