Next: , Previous: , Up: モーション   [Contents][Index]


31.2.2 単語単位の移動

以下で説明する単語をパースする関数は、与えられた文字が単語の一部かどうかを判断するために構文テーブルとchar-script-tableを使用します。構文テーブル文字のプロパティを参照してください。

Command: forward-word &optional count

この関数はcountの単語数分ポイントを前方に移動する。(countが負なら後方に移動する)。countが省略またはnilの場合のデフォルトは1。インタラクティブな呼び出しでは、countは数プレフィクス引数により指定される。

“単語1つ移動”とは単語構成文字を横断(これは単語の先頭を示す)して単語の終わりまで移動を継続することを意味する。デフォルトでは単語を開始や終了させる文字は単語境界(word boundaries)として知られており、これはカレントバッファーの構文テーブル(構文クラスのテーブルを参照)で定義されるが、後述のfind-word-boundary-function-tableを適切にセットすることによりモードはこれをオーバーライドできる。(char-script-tableにより定義される)異なるスクリプトに属する文字も単語境界を定義できる(文字のプロパティを参照)。いずれにせよ、この関数はバッファーのアクセス可能範囲の境界やフィールド境界(フィールドの定義と使用を参照)を超えてポイントを移動できない。フィールド境界のもっとも一般的な例はミニバッファー内のプロンプト終端である。

バッファー境界やフィールド境界により途中で停止することなく単語count個分の移動が可能なら値はtとなる。それ以外ではリターン値はnilとなり、ポイントはバッファー境界またはフィールド境界で停止する。

inhibit-field-text-motionが非nilなら、この関数はフィールド境界を無視する。

Command: backward-word &optional count

この関数は単語の前に遭遇するまで前方ではなく後方に移動することを除いてforward-wordと同様。

User Option: words-include-escapes

この変数は、forward-wordbackward-word、およびそれらを使用するすべての関数の挙動に影響する。これが非nilなら、構文クラスescapeとcharacter-quote内の文字は単語の一部とみなされる。それ以外なら単語の一部とはみなされない。

Variable: inhibit-field-text-motion

この変数が非nilならforward-wordforward-sentenceforward-paragraphを含む特定のモーション関数はフィールド境界を無視する。

Variable: find-word-boundary-function-table

この変数はforward-wordbackward-word、およびそれらを使用するすべての挙動に影響する。値は単語境界を検索するための関数の文字テーブル(文字テーブルを参照)。このテーブル内である文字が非nilのエントリーをもつ場合には、単語がその文字で開始または終了する際に対応する関数が2つの引数poslimitで呼び出される。この関数は別の単語境界の位置をリターンすること。具体的には、poslimitより小さければposは単語の先頭にあり関数はその単語の最後の文字の後の位置、それ以外ならposは単語の最後の文字にあり関数はその単語の最初の文字の位置をリターンすること。

Function: forward-word-strictly &optional count

この関数はforward-wordと同様だがfind-word-boundary-function-tableによる影響を受けない点が異なる。このテーブルをセットするsubword-modeのようなモードにより単語単位の移動が変更されている際に挙動を変えるべきではないLispプログラムは、forward-wordのかわりにこの関数を使用すること。

Function: backward-word-strictly &optional count

この関数はbackward-wordと同様だが、find-word-boundary-function-tableの影響を受けない点が異なる。forward-word-strictlyと同様に、構文テーブルだけを考慮して単語単位の移動を行う必要がある際には、backward-wordのかわりにこの関数を使用すること。