マーカーを新たに作成する際には存在しない場所、ポイントの現在位置、バッファーのアクセス可能範囲の先頭や終端、または別の与えられたマーカーと同じ箇所を指すようにすることができます。
以下の4つの関数はすべて挿入タイプnil
のマーカーをリターンします。マーカーの挿入タイプを参照してください。
この関数はどこも指さないマーカーを新たに作成してリターンする。
(make-marker) ⇒ #<marker in no buffer>
この関数はカレントバッファーのポイント現在位置を指すマーカーを新たに作成してリターンする。ポイントを参照のこと。例は以下のcopy-marker
を参照のこと。
この関数はバッファーのアクセス可能範囲の先頭を指すマーカーを新たに作成してリターンする。ナローイングが効力をもたなければ、これはバッファーの先頭になるだろう。ナローイングを参照のこと。
この関数はバッファーのアクセス可能範囲の終端を指すマーカーを新たに作成してリターンする。ナローイングが効力をもたなければ、これはバッファーの終端になるだろう。ナローイングを参照のこと。
以下はこのチャプターのテキストのソースファイルのバージョンを含むバッファーにたいして、この関数とpoint-min-marker
を使用する例。
(point-min-marker) ⇒ #<marker at 1 in markers-ja.texi> (point-max-marker) ⇒ #<marker at 24080 in markers-ja.texi>
(narrow-to-region 100 200) ⇒ nil
(point-min-marker) ⇒ #<marker at 100 in markers-ja.texi>
(point-max-marker) ⇒ #<marker at 200 in markers-ja.texi>
引数としてマーカーを渡されると、copy-marker
はmarker-or-integerが行うように同じバッファーの同じ位置を指すマーカーを新たに作成してリターンする。整数を渡されると、copy-marker
はカレントバッファーの位置marker-or-integerを指すマーカーを新たに作成してリターンする。
新たなマーカーの挿入タイプは引数insertion-typeにより指定される。マーカーの挿入タイプを参照のこと。
(copy-marker 0) ⇒ #<marker at 1 in markers-ja.texi>
(copy-marker 90000) ⇒ #<marker at 24080 in markers-ja.texi>
markerがマーカーと整数のいずれでもなければエラーがシグナルされる。
2つのマーカーはそれらが同じバッファーの同じ位置、またはどちらも存在しない場所を指す場合には、(eq
ではないが)equal
とみなされます。
(setq p (point-marker)) ⇒ #<marker at 2139 in markers-ja.texi>
(setq q (copy-marker p)) ⇒ #<marker at 2139 in markers-ja.texi>
(eq p q) ⇒ nil
(equal p q) ⇒ t