バッファ motion 関数は、(カレントなポイント値に対してであれ、バッファの先頭も しくは終端に対してであれ、 selected ウィンドウの端に対してであれ) ポイントの値 を変更することで機能します。
Command: goto-char position
この関数は、カレントバッファのポイントを(カレントバッファの) position に設 定します。 position が 1 以下の場合、ポイントをバッファの先頭に設定しま す。バッファの長さ以上の場合、ポイントをバッファの終端に設定します。
clipping 制限が用いられた場合も、この position は(以前として)そのバッファ の先頭から計られますが、 clipped 領域の外に示された position は clipped 領 域の先頭か終端の位置となります。
インタラクティブに呼ばれた場合、(それが与えれている場合) position はプレ フィックスアーギュメントになり、(与えられてない場合) ミニバッファから読み 込みます。
goto-char は position を返します。
Command: goto-line line
この関数は、(バッファの先頭を 1 行目と数え) line 行目の行の先頭にポイント を設定します。 line が 1 より小さい場合、ポイントをバッファの先頭に置きま す。バッファ中の行数より大きい場合、バッファ最後の行の終りに設定します。
clipping 制限が用いられた場合、 line は(まだ)そのバッファの先頭から数えま すが、clipped 領域の外に line が指定されると、ポイントは clipped 領域の先 頭か終りに位置付けられることになります。
インタラクティブに呼ばれた場合、(与えられている場合) line は数値のプレ フィックスアーギュメントになります。そうでない場合、 line をミニバッファか ら読み込みます。
Command: forward-char &optional count
この関数は、ポイントを右に count 文字動かします(count が負の場合、左に動か します)。バッファ(もしくは clipped 領域)の先頭や終端を越えてしまう場合、 beginning-of-buffer か end-of-buffer エラーを出します。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トになります。
Command: backward-char &optional count
この関数は、ポイントを左に count 文字動かします( count が負の場合、右に動 かします)。バッファ(もしくは clipped 領域)の先頭や終端を越えてしまう場合、 beginning-of-buffer か end-of-buffer エラーを出します。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トになります。
Command: forward-word count
この関数は、ポイントを count word 先に動かします( count が負の場合、後ろに 動かします)。通常 t を返します。バッファの端に達した場合、ポイントをそこに 残し nil を返します。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トに設定されます。
Command: backward-word count
この関数は、 word の前に達するまで後ろに動く点を除いて forward-word に対応 するものです。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トに設定されます。
プログラム中では、負のアーギュメントで forward-word を呼んだ方が速くなりま す。この関数がやっているのはそれでしかありません。
Command: forward-line &optional count
この関数は、ポイントを今の位置から count 行下の行の先頭に動かします。 count が負の場合、上に動かします。
バッファ(もしくは clipped 領域)中に十分な行が存在しない場合、ポイントを バッファ(もしくは clipped 領域) の先頭(もしくは終端)に動かします。
count と実際に動いた行数との差を返します。 3 行しかないバッファの頭から 5 行下に動かすよう指示すると、ポイントをその最後の行の終りに位置付け、2 を返 すことになります。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トになります。
Command: beginning-of-line &optional count
この関数は、ポイントをカレント行の先頭に動かします。アーギュメント count が nil でも 1 でもない場合、最初に count - 1) 行下に動かします。バッファ (もしくは clipped 領域) の終端に達する場合、その最後の行の頭にポイントを位 置付けます。エラーは出しません。
Command: end-of-line &optional count
この関数は、ポイントをカレント行の終りに動かします。アーギュメント count が nil でも 1 でもない場合、最初に (count - 1) 行下に動かします。バッファ (もしくは clipped 領域) の終端に達する場合、その最後の行の終りにポイントを 位置付けます。エラーは出しません。
Command: previous-line count
この関数は、 count 行上に ( count が負の場合は下)にポイントを動かします。 動かす際、これは "ゴールカラム" (通常動かし始めた時にいた同じカラム) にポ イントを保持するようにします。
移動先の行のカレントなカラムに文字が存在しない場合、ポイントをそのカラムを span (訳注:??) する文字の後ろか、 (行が十分長くない場合)その行の終りに位 置付けます。
バッファ(もしくは clipped 領域)を越えて動かそうとされた場合、ポイントをそ の先頭もしくは終端の行のゴールカラムに位置付けます。エラーは出しません。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トになります。
コマンド set-goal-column を用い、このコマンドが(常に)そこに対し動かす半永 続的(訳注:semipermanent)なゴールカラムを作ることができます。この場合、上 下に動かすことはしません(訳注:??)。
これを Lisp プログラムで用いることを考えているとしたら、かわりに負のアー ギュメントで forward-line を用いることを考えるべきです。 (通常)そのほうが 使いやすく、より信頼性が高くなります(ゴールカラム等に依存しないため)。
Command: next-line count
この関数は、 count 行下( count が負の場合は上)にポイントを動かします。動か す際、これは "ゴールカラム" (通常動かし始めた時にいた同じカラム) にポイン トを保持するようにします。
移動先の行のカレントなカラムに文字が存在しない場合、ポイントをそのカラムを span (訳注:??) する文字の後ろか、 (行が十分長くない場合)その行の終りに位 置付けます。
バッファ(もしくは clipped 領域)を越えて動かそうとした場合、ポイントをその 先頭もしくは終端の行のゴールカラムに位置付けます。エラーは出しません。
count が 1 でポイントがバッファ(もしくは clipped 領域)の最後の行にある場
合、新しく empty 行をバッファ(もしくは clipped 領域)の終りに挿入し、ポイン トをそこに位置付けます。
インタラクティブに呼ばれた場合、 count は数値のプレフィックスアーギュメン トになります。
コマンド set-goal-column を用い、このコマンドが(常に)そこに対し動かす半永 続的(訳注:semipermanent)なゴールカラムを作ることができます。この場合、上 下に動かすことはしません(訳注:??)。
これを Lisp プログラムで用いることを考えているとしたら、かわりに forward- line を用いることを考えるべきです。 (通常)そのほうがより使いやすく、より信 頼性が高くなります(ゴールカラム等に依存しないため)。
Function: vertical-motion count
この関数は、 count 行下の行の頭にポイントを動かします。 count が負の場合、 上に動かします。 (Emacs が)テキストの行を画面上で 2行 (や 3行等に) wrap し ている場合、これはニューライン文字でターミネートされた行ではなく画面上の行 を数えます。
動いた行数を返します。バッファの先頭もしくは終端に達した場合、これは count より 0 に近いことがありえます。
Function: count-lines start end
この関数は、カレントバッファのポジション (バッファの先頭からの文字オフセッ ト) start と end の間の行数を返します。 start と end とが同じ場合 0 を返し ます。そうでない場合 start と end とが同じ行にあっても(少なくとも) 1 を返 します。
Function: move-to-column column
この関数は、カレント行の column にポイントを動かします。 column は前の行の 先頭とそのポイントとの間の文字の全ての(表示された)表現の幅を足し合わせて得 られる値です (これは control 文字は ctl-arrow の設定により 2 か 4 の幅を持
つことがあり、タブもその幅が変化することを意味しています)。(訳注:??)
これはスクリーンの幅が有限であることは無視します。つまりこの関数は (screen-width) より大きな値を渡されてもかまいません。カレント行がそれほど 長くない場合、ポイントを行の終りに位置付けます。 column が 1 未満である場 合、ポイントを行の先頭に位置付けます。 column は integer でなくてはいけま せん。
Function: current-column
この関数は、ポイントの水平方向のポジション(訳注:horizontal position) を返 します。行の先頭はカラム 0 です。このポジションは 前の行の先頭とそのポイン トとの間の文字の全ての(表示された)表現の幅を足し合わせて得られる値です。こ れは control 文字は ctl-arrow の設定により 2 か 4 の幅を持つことがあり、タ ブもその幅が変化することを意味しています。これはスクリーンの幅が有限である ことは無視します。つまりこの関数は (screen-width) より大きな値を返すことも ありえます。
Command: beginning-of-buffer &optional n
この関数は、ポイントをバッファの先頭に動かします。この際、マークを(前の)ポ イントの位置に置きます。 n が non-nil の場合、バッファの頭から n/10 の場所 にポイントを置きます。
インタラクティブに呼ばれた場合、 n は (与えられている場合) 数値のプレ フィックスアーギュメントになります。そうでない場合 n はデフォルトで nil に なります。
Lisp プログラムでこれを用いてはいけません! (goto-char (point-min)) の方が 速く、マークの設定も行ないません。
Command: end-of-buffer &optional n
この関数は、ポイントをバッファの終りに動かします。この際、マークを前のポイ ントの位置に置きます。 n が non-nil の場合、バッファの終端から n/10 の場所 にポイントを置きます。
インタラクティブに呼ばれた場合、 n は (与えられている場合) 数値のプレ フィックスアーギュメントになります。そうでない場合 n はデフォルトで nil に なります。
Lisp プログラムでこれを用いてはいけません! (goto-char (point-max)) の方が 速く、マークの設定も行ないません。