GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Creating-Markers.html ・ emacs-doc.conao3.com

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

新しいマーカーを作成する際、どこにも向けないようにしたり、ポイントの現在位置や、バッファのアクセス可能な領域の先頭または末尾、あるいは別の指定されたマーカーと同じ場所に向けたりすることができます。

続く4つの関数はいずれも、挿入タイプ nil のマーカーを返します。マーカー挿入タイプを参照してください。

関数: make-marker

この関数は、どこにも指していない、新しく作成されたマーカーを返します。

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

この関数は、現在のバッファにおける point の現在位置を指す新しいマーカーを返します。Point を参照してください。例については、後述の copy-marker を参照してください。

関数: point-min-marker

この関数は、バッファのアクセス可能な領域の先頭を指す新しいマーカーを返します。ナローイングが有効でない限り、これはバッファの先頭となります。ナローイングを参照してください。

関数: point-max-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 &optional marker-or-integer insertion-type

引数としてマーカーが渡された場合、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