新しいマーカーを作成する際、どこにも向けないようにしたり、ポイントの現在位置や、バッファのアクセス可能な領域の先頭または末尾、あるいは別の指定されたマーカーと同じ場所に向けたりすることができます。
続く4つの関数はいずれも、挿入タイプ nil のマーカーを返します。マーカー挿入タイプを参照してください。
この関数は、どこにも指していない、新しく作成されたマーカーを返します。
(make-marker)
⇒ #<marker in no buffer>
この関数は、現在のバッファにおける point の現在位置を指す新しいマーカーを返します。Point を参照してください。例については、後述の copy-marker を参照してください。
この関数は、バッファのアクセス可能な領域の先頭を指す新しいマーカーを返します。ナローイングが有効でない限り、これはバッファの先頭となります。ナローイングを参照してください。
この関数は、バッファのアクセス可能な領域の終端を指す新しいマーカーを返します。ナローイングが有効でない限り、これがバッファの終端となります。ナローイングを参照してください。
本章の本文のソースファイルのバージョンを含むバッファに、この関数とpoint-min-markerの使用例を示します。
(point-min-marker)
⇒ #<marker at 1 in markers.texi>
(point-max-marker)
⇒ #<marker at 24080 in markers.texi>
(narrow-to-region 100 200)
⇒ nil
(point-min-marker)
⇒ #<marker at 100 in markers.texi>
(point-max-marker)
⇒ #<marker at 200 in markers.texi>
引数としてマーカーが渡された場合、copy-marker は marker-or-integer
と同じ位置および同じバッファを指す新しいマーカーを返します。引数として整数が渡された場合、copy-marker は現在のバッファ内の位置 marker-or-integer を指す新しいマーカーを返します。
新しいマーカーの挿入タイプは、引数 insertion-type で指定されます。マーカー挿入タイプを参照してください。
(copy-marker 0)
⇒ #<marker at 1 in markers.texi>
(copy-marker 90000)
⇒ #<marker at 24080 in markers.texi>
marker がマーカーでも整数でもない場合、エラーが報告されます。
2つの異なるマーカーは、位置とバッファが同一であるか、あるいは両者ともどこにも指していない場合に、互いに異なるマーカーとみなされる equal(eq ではないが)。
(setq p (point-marker))
⇒ #<marker at 2139 in markers.texi>
(setq q (copy-marker p))
⇒ #<marker at 2139 in markers.texi>
(eq p q)
⇒ nil
(equal p q)
⇒ t