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


31.3 マーカーを作成する関数

マーカーを新たに作成する際には存在しない場所、ポイントの現在位置、バッファーのアクセス可能範囲の先頭や終端、または別の与えられたマーカーと同じ箇所を指すようにすることができます。

以下の4つの関数はすべて挿入タイプnilのマーカーをリターンします。Marker Insertion Typesを参照してください。

Function: make-marker

この関数はどこも指さないマーカーを新たに作成してリターンする。

(make-marker)
     ⇒ #<marker in no buffer>
Function: point-marker

この関数はカレントバッファーのポイント現在位置を指すマーカーを新たに作成してリターンする。Pointを参照のこと。例は以下のcopy-markerを参照のこと。

Function: point-min-marker

この関数はバッファーのアクセス可能範囲の先頭を指すマーカーを新たに作成してリターンする。ナローイングが効力をもたなければ、これはバッファーの先頭になるだろう。Narrowingを参照のこと。

Function: point-max-marker

この関数はバッファーのアクセス可能範囲の終端を指すマーカーを新たに作成してリターンする。ナローイングが効力をもたなければ、これはバッファーの終端になるだろう。Narrowingを参照のこと。

以下はこのチャプターのテキストのソースファイルのバージョンを含むバッファーにたいして、この関数と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>
Function: copy-marker &optional marker-or-integer insertion-type

引数としてマーカーを渡されると、copy-markermarker-or-integerが行うように同じバッファーの同じ位置を指すマーカーを新たに作成してリターンする。整数を渡されると、copy-markerはカレントバッファーの位置marker-or-integerを指すマーカーを新たに作成してリターンする。

新たなマーカーの挿入タイプは引数insertion-typeにより指定される。Marker Insertion Typesを参照のこと。

(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