次: , 前: Predicates on Markers, 上: Markers


30.3 マーカ作成関数

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

— 機能: make-marker

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

          (make-marker)
               => #<marker in no buffer>
     
— 機能: point-marker

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

— 機能: point-min-marker

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

— 機能: 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>
     
— 機能: 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