Previous: List Motion, Up: Motion


29.2.7 文字群の飛び越し

つぎの2つの関数は、指定した種類の文字を飛び越えてポイントを移動します。 たとえば、白文字を飛び越すためにこれらはしばしば使われます。 関連する関数については、Motion and Syntaxを参照してください。

— Function: skip-chars-forward character-set &optional limit

この関数は、指定した文字の集まりを飛び越えて、 カレントバッファ内で前方にポイントを移動する。 ポイントのあとの文字を調べ、 その文字がcharacter-setに一致するとポイントを進める。 これをcharacter-setに一致しない文字に達するまで繰り返す。 この関数は飛び越えた文字の個数を返す。

引数character-setは、正規表現の‘[...]’の内側と同じであるが、 ‘]’は特別扱いせず、‘\’は‘^’や‘-’や‘\’をクォートする。 したがって、"a-zA-Z"はすべての英文字を飛び越えて 最初の英文字でない文字のまえで止まる。 "^a-zA-Z"は英文字でない文字を飛び越えて最初の英文字で止まる。 see Regular Expressions

limitを指定すると(数かマーカであること)、 ポイントを移動できるバッファ内の最大位置を指定する。 ポイントは、limitで止まるかlimitに達するまえに止まる。

つぎの例では、ポイントは最初は‘T’の直前に位置している。 フォームを評価後には、ポイントはその行末 (‘hat’の‘t’と改行のあいだ)に位置している。 この関数は、すべての英文字と空白を飛び越えるが、改行は飛び越えない。

          ---------- Buffer: foo ----------
          I read "-!-The cat in the hat
          comes back" twice.
          ---------- Buffer: foo ----------
          
          (skip-chars-forward "a-zA-Z ")
               ⇒ nil
          
          ---------- Buffer: foo ----------
          I read "The cat in the hat-!-
          comes back" twice.
          ---------- Buffer: foo ----------
— Function: skip-chars-backward character-set &optional limit

この関数は、limitに達するまで、 後方へ向かってcharacter-setに一致する文字を飛び越えてポイントを移動する。 これはskip-chars-forwardと同様であるが、移動方向が異なる。

移動距離を表す値を返す。 それは0以下の整数である。