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

31.2.4 テキスト行による移動

テキスト行とは、改行文字によって区切られたバッファの一部であり、これらの文字は直前の行の一部とみなされます。最初のテキスト行はバッファの先頭から始まり、最後のテキスト行は、最後の文字が改行であるか否かにかかわらず、バッファの末尾で終わります。バッファのテキスト行への分割は、ウィンドウの幅、表示上の行継続、あるいはタブや制御文字の表示方法によって影響を受けることはありません。

コマンド: beginning-of-line &optional count

この関数は、ポイントを現在の行の先頭に移動します。引数に nil や 1 ではなく count を指定すると、count−1 行分進み、その後行の先頭に移動します。

この関数は、フィールド境界を越えてポイントを移動させることはありません(フィールドの定義と使用を参照)。ただし、移動することで境界を越え、別の行に移動する場合はこの限りではありません。したがって、count が nil または 1 であり、ポイントがフィールド境界から開始する場合、ポイントは移動しません。フィールド境界を無視するには、inhibit-field-text-motion を t にバインドするか、代わりに forward-line 関数を使用してください。例えば、(forward-line 0) はフィールド境界を無視する点を除けば、(beginning-of-line) と同じ動作をします。

この関数がバッファの末尾(または狭めが適用されている場合はアクセス可能な部分の末尾)に達した場合、そこに point を移動します。エラーは通知されません。

関数: line-beginning-position &optional count

(beginning-of-line count) が移動する位置を返します。

コマンド: end-of-line &optional count

この関数は、ポイントを現在の行の末尾に移動します。引数に nil や 1 ではなく count を指定すると、count−1 行分進み、その後行の末尾に移動します。

この関数は、フィールド境界を越えてポイントを移動させることはありません(フィールドの定義と使用を参照)。ただし、移動することで境界を越えて別の行に移る場合は除きます。したがって、count が nil または 1 であり、ポイントがフィールド境界から開始する場合、ポイントは移動しません。フィールド境界を無視するには、inhibit-field-text-motion を t にバインドしてください。

この関数がバッファの末尾(または狭めが適用されている場合はアクセス可能な部分の末尾)に達した場合、そこに point を移動します。エラーは通知されません。

関数: line-end-position &optional count

(end-of-line count) が移動する位置を返します。

関数: pos-bol &optional count

line-beginning-positionと同様だが、フィールドを無視する(より効率的)。

関数: pos-eol &optional count

line-end-positionと同様だが、フィールドを無視する(より効率的)。

コマンド: forward-line &optional count

この関数は、ポイントを count 行分前方に移動させ、その次の行の先頭に配置します。count が負の場合、ポイントを −count 行分後方に移動させ、その前の行の先頭に配置します。count が 0 の場合、ポイントを現在の行の先頭に移動します。count が nil の場合、それは 1 を意味します。

forward-line が、規定の行数に達する前にバッファ(またはアクセス可能な部分)の先頭または末尾に到達した場合、そこにポイントを設定します。エラーは通知されません。

forward-line は、count と実際に移動した行数との差を返します。3行しかないバッファの先頭から5行分下に移動しようとした場合、ポイントは最終行の末尾で停止し、値は 2 になります。明示的な例外として、アクセス可能な最終行が空ではなく、かつ改行が含まれていない場合(例:バッファが改行なしで終了している場合)、関数はポイントをその行の末尾に設定し、関数が返す値ではその行を正常に移動した1行としてカウントします。

インタラクティブコールにおいて、countは数値のプレフィックス引数です。

関数: count-lines start end &optional ignore-invisible-lines

この関数は、現在のバッファにおける位置 start と end の間にある行数を返します。start と end が等しい場合は 0 を返します。それ以外の場合は、start と end が同じ行にある場合であっても、少なくとも 1 を返します。これは、その間のテキストを単独で考えた場合、空でない限り少なくとも 1 行含まれている必要があるためです。

オプションの ignore-invisible-lines が nil でない場合、不可視の線はカウントに含まれません。

コマンド: count-words start end

この関数は、現在のバッファにおける位置 start から end までの単語数を返します。

この関数は対話的にも呼び出すことができます。その場合、バッファ、あるいはリージョンが有効な場合はリージョン内の行数、単語数、文字数を報告するメッセージを出力します。

関数: line-number-at-pos &optional pos absolute

この関数は、バッファ位置 pos に対応する現在のバッファ内の行番号を返します。pos が nil であるか、または省略されている場合は、現在のバッファ位置が使用されます。absolute がデフォルトの nil である場合、カウントは (point-min) から始まるため、この値は(狭められている可能性のある)バッファのアクセス可能な部分の内容を指します。absolute が nil 以外である場合は、いかなる狭めも無視し、絶対行番号を返します。

また、テキストの近傍点の確認にある関数 bolp および eolp も参照してください。これらの関数はポイントを移動させるものではなく、ポイントがすでに行の先頭または末尾にあるかどうかを判定します。