buffer缓冲区 是一个用于存放可编辑文本的对象(see Buffers)。大多数缓冲区用来存放磁盘文件的内容以便编辑(see Files),但也有一部分缓冲区用于其他用途。大多数缓冲区会展示给用户,并在某个时刻显示在窗口中(see Windows),但缓冲区并非必须显示在任何窗口里。 每个缓冲区都有一个指定位置,称为 point光标位置(see Positions);大多数编辑命令都作用于当前缓冲区中光标附近的内容。在任意时刻,都有且仅有一个 current buffer当前缓冲区。
缓冲区的内容与字符串很像,但在 Emacs Lisp 中,缓冲区和字符串的用法不同,可用的操作也不一样。例如,你可以高效地向已有缓冲区插入文本,直接修改缓冲区内容;而向字符串插入文本则需要拼接子串,结果会生成一个全新的字符串对象。
许多标准 Emacs 函数都会操作或检测当前缓冲区中的字符;本手册有专门一章用来描述这些函数(see Text)。
每个缓冲区还关联着若干其他数据结构:
局部按键映射和变量列表中的项会分别覆盖全局的绑定或取值。它们用于在不同缓冲区中定制程序行为,而无需真正修改程序本身。
缓冲区可以是 indirect间接缓冲区,即它与另一个缓冲区共享文本,但展示方式不同。See Indirect Buffers。
缓冲区没有可读语法。打印时会以井号尖括号形式显示缓冲区名称。
(current-buffer)
⇒ #<buffer objects.texi>