最後に、buffer-size、point、point-min、point-maxという比較的シンプルな関数をいくつか見てみましょう。これらは、バッファのサイズと、その中のポイントの位置に関する情報を提供します。
関数 buffer-size
は現在のバッファのサイズを返します。つまり、この関数はバッファ内の文字数を返します。
(buffer-size)
式の後にカーソルを置き、C-x C-e と入力することで、通常通りに評価できます。
Emacsでは、カーソルの現在位置をpointと呼びます。式(point)は、バッファの先頭からpointまでの文字数として、カーソルがどこにあるかを示す数値を返します。
このバッファ内の point の文字数は、以下の式を通常通り評価することで確認できます。
(point)
本稿執筆時点で、pointの値は65724です。point関数は、本書の後半にあるいくつかの例で頻繁に使用されます。
pointの値は、当然ながらバッファ内での位置によって異なります。この位置でpointを評価すると、より大きな値になります:
(point)
私の場合、この箇所におけるpointの値は66043であり、これは2つの式の間に319文字(スペースを含む)があることを意味します。(最初にpointを評価して以来、内容を編集しているため、おそらく異なる数値が表示されることでしょう。)
関数 point-min は point
とある程度似ていますが、現在のバッファにおける point の許容される最小値を返します。ナローイング
が有効でない限り、この値は 1 となります。(ナローイングとは、自身またはプログラムを、バッファの一部に対する操作のみに限定できる仕組みのことです。ナローイングとワイドニングを参照してください。)同様に、関数
point-max は現在のバッファにおける point の許容される最大値を返します。