Next: , Previous: , Up: Buffers   [Contents][Index]


26.9 Creating Buffers

このセクションでは、バッファーを作成する2つのプリミティブについて説明します。get-buffer-createは、指定された名前の既存バッファーが見つからない場合は作成します。generate-new-bufferは、常に新たにバッファーを作成して、それに一意な名前を与えます。

バッファーを作成するために使用できる他の関数には、with-output-to-temp-buffer(Temporary Displaysを参照)、およびcreate-file-buffer(Visiting Filesを参照)が含まれます。サブプロセスの開始によっても、バッファーを作成することができます(Processesを参照)。

Function: get-buffer-create buffer-or-name

この関数は、buffer-or-nameという名前のバッファーをリターンする。リターンされたバッファーはカレントにならない — この関数はカレントがどのバッファーであるかを変更しない。

buffer-or-nameは文字列、または既存バッファーのいずれかでなければならない。これが文字列で、かつ既存の生きたバッファーの名前の場合、get-buffer-createはそのバッファーをリターンする。そのようなバッファーが存在しなければ、新たにバッファーを作成する。buffer-or-nameが文字列ではなくバッファーの場合、たとえそのバッファーが生きていなくても、与えられたバッファーをリターンする。

(get-buffer-create "foo")
     ⇒ #<buffer foo>

新たに作成されたバッファーにたいするメジャーモードは、Fundamentalモードにセットされる(変数major-modeのデフォルト値は、より高いレベルで処理される。Auto Major Modeを参照されたい)。名前がスペースで始まる場合、そのバッファーのアンドゥ情報の記録は、初期状態では無効である(Undoを参照)。

Function: generate-new-buffer name

この関数は、新たに空のバッファーを作成してリターンするが、それをカレントにはしない。バッファーの名前は、関数generate-new-buffer-namenameを渡すことにより生成される(Buffer Namesを参照)。つまり、nameという名前のバッファーが存在しなければ、それが新たなバッファーの名前になり、その名前が使用されていた場合は、‘<n>’という形式のサフィックスがnameに追加される。ここでnは整数である。

nameが文字列でない場合は、エラーがシグナルされる。

(generate-new-buffer "bar")
     ⇒ #<buffer bar>
(generate-new-buffer "bar")
     ⇒ #<buffer bar<2>>
(generate-new-buffer "bar")
     ⇒ #<buffer bar<3>>

新たなバッファーにたいするメジャーモードは、Fundamentalモードにセットされる。変数major-modeのデフォルト値は、より高いレベルで処理される。Auto Major Modeを参照のこと。