Next: , Previous: , Up: Editing Types   [Contents][Index]


8.5.1 Buffer Type

A buffer is an object that holds text that can be edited (see Buffers). Most buffers hold the contents of a disk file (see Files) so they can be edited, but some are used for other purposes. Most buffers are also meant to be seen by the user, and therefore displayed, at some time, in a window (see Windows). But a buffer need not be displayed in any window.

The contents of a buffer are much like a string, but buffers are not used like strings in SXEmacs Lisp, and the available operations are different. For example, insertion of text into a buffer is very efficient, whereas “inserting” text into a string requires concatenating substrings, and the result is an entirely new string object.

Each buffer has a designated position called point (see Positions). At any time, one buffer is the current buffer. Most editing commands act on the contents of the current buffer in the neighborhood of point. Many of the standard SXEmacs functions manipulate or test the characters in the current buffer; a whole chapter in this manual is devoted to describing these functions (see Text).

Several other data structures are associated with each buffer:

The local keymap and variable list contain entries that individually override global bindings or values. These are used to customize the behavior of programs in different buffers, without actually changing the programs.

A buffer may be indirect, which means it shares the text of another buffer. See Indirect Buffers.

Buffers have no read syntax. They print in hash notation, showing the buffer name.

(current-buffer)
     ⇒ #<buffer "objects.texi">

Next: , Previous: , Up: Editing Types   [Contents][Index]