Next: , Previous: Predicates on Markers, Up: Markers


30.3 マーカ作成関数

新たにマーカを作成するときには、そのマーカが、 どこも指していない、現在のポイント位置を指している、 バッファの参照可能部分の先頭や末尾を指している、 別のマーカと同じ箇所を指しているのいずれかにできます。

— Function: make-marker

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

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

この関数は、カレントバッファの現在のポイント位置を 指す新たに作成したマーカを返す。 see Point。 例については、下記のcopy-markerを参照。

— Function: point-min-marker

この関数は、バッファの参照可能部分の先頭を指す新たに作成したマーカを返す。 ナロイングしていなければ、これはバッファの先頭である。 see Narrowing

— Function: point-max-marker

この関数は、バッファの参照可能部分の末尾を指す新たに作成したマーカを返す。 ナロイングしていなければ、これはバッファの末尾である。 see Narrowing

本章のソースファイル(の原文)を入れたバッファでの この関数とpoint-min-markerの例を示す。

          (point-min-marker)
               ⇒ #<marker at 1 in markers.texi>
          (point-max-marker)
               ⇒ #<marker at 15573 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>
— Function: copy-marker marker-or-integer &optional insertion-type

引数としてマーカを渡されると、copy-markerは、 marker-or-integerが指すのと同じ バッファとバッファ内位置を指す新たなマーカを返す。 引数として整数を渡されると、copy-markerは、 カレントバッファで位置marker-or-integerを指す新たなマーカを返す。

新たなマーカの挿入型は引数insertion-typeで指定する。 see Marker Insertion Types

渡された整数引数が1未満であると、copy-markerは、 カレントバッファでバッファの先頭を指す新たなマーカを返す。 渡された整数引数がバッファの長さより大きいと、copy-markerは、 バッファの末尾を指す新たなマーカを返す。

          (copy-marker 0)
               ⇒ #<marker at 1 in markers.texi>
          
          (copy-marker 20000)
               ⇒ #<marker at 7572 in markers.texi>

marker-or-integerがマーカでも整数でもないと、エラーを通知する。

2つの異なるマーカが、同じバッファの同じバッファ内位置であるか、 どちらもどこも指していないときには、 両者を(eqではないが)equalとみなします。

     (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