Next: Marker Type, Previous: Editing Types, Up: Editing Types
バッファ(buffer)は、編集可能なテキストを保持するオブジェクトです (see Buffers)。 ほとんどのバッファは、ディスクファイル(see Files)の内容を保持して 編集できるようにしますが、他の目的に使われるものもあります。 ほとんどのバッファは、ユーザーが見るためのものであり、 ある期間、ウィンドウ(see Windows)に表示されます。 しかし、バッファがいずれかのウィンドウに必ずしも表示される必要はありません。
バッファの内容は文字列によく似ていますが、 Emacs Lispにおいては、バッファは文字列のようには使われず、 適用可能な操作も異なります。 たとえば、既存のバッファにテキストを効率よく挿入できますが、 文字列にテキストを『挿入』するには、 部分文字列を連結する必要があり、まったく新しい文字列オブジェクトになります。
各バッファには、ポイント(point)と呼ばれる特別な箇所があります (see Positions)。 どんなときにも、1つのバッファがカレントバッファ(current buffer)です。 ほとんどの編集コマンドは、カレントバッファのポイント付近の内容に作用します。 多くのEmacsの標準関数は、カレントバッファ内にある文字を操作したり検査します。 本書には、これらの関数の説明にあてた章が1つあります(see Text)。
各バッファに関連付けられたデータ構造には、つぎのものがあります。
ローカルキーマップと変数リストには、 それぞれ、グローバルな束縛や値に優先するものが入っています。 これらは、プログラムを変更せずに、各バッファごとに、 プログラムのふるまいをカスタマイズするために使われます。
バッファは間接(indirect)でもよく、その場合、 別のバッファとテキストを共有しつつ異なった表示を行えます。 See Indirect Buffers。
バッファには入力構文はありません。 バッファ名を含んだハッシュ記法で表示します。
(current-buffer) #<buffer objects.texi>