缓冲区(buffer)是一种用于存放待编辑文本的 Lisp 对象。缓冲区用于保存已访问文件的内容;同时也存在不关联任何文件的缓冲区。虽然通常会同时存在多个缓冲区,但任何时刻都只有一个缓冲区被指定为当前缓冲区(current buffer)。大多数编辑命令都作用于当前缓冲区的内容。每个缓冲区(包括当前缓冲区)可以显示在某个窗口中,也可以不显示在任何窗口。
Emacs 编辑中的缓冲区是具有独立名称、并可编辑文本的对象。对 Lisp 程序而言,缓冲区是一种特殊数据类型。你可以将缓冲区内容看作一个可扩展的字符串;插入与删除操作可以发生在缓冲区的任意位置。See Text。
Lisp 缓冲区对象包含大量信息。其中部分信息程序员可通过变量直接访问,另一部分信息则仅能通过专用函数访问。例如,已访问文件名可通过变量直接获取,而光标位置(point)的值仅能通过原始函数获取。
可直接访问的缓冲区专属信息存储在缓冲区局部(buffer-local)变量绑定中,这类变量值仅在特定缓冲区中生效。该特性允许每个缓冲区覆盖特定变量的值。大多数主模式都会以这种方式覆盖 fill-column 或 comment-column 等变量。关于缓冲区局部变量及相关函数的更多信息,参见缓冲区局部变量。
与在缓冲区中访问文件相关的函数和变量,参见访问文件 和 保存缓冲区。与在窗口中显示缓冲区相关的函数和变量,参见Buffers and Windows。
若 object 为缓冲区,该函数返回 t,否则返回 nil。