以下の2つの関数は、指定した文字集合上でポイントを移動させます。例えば、空白をスキップする際によく使われます。関連する関数については、移動と構文を参照してください。
これらの関数は、検索関数と同様に、バッファがマルチバイトであればセット文字列をマルチバイトに変換し、バッファがユニバイトであればユニバイトに変換します(検索とマッチングを参照)。
この関数は、現在のバッファ内で指定した文字セットをスキップしながら、ポイントを前方に移動させます。ポイントの次の文字を確認し、その文字が character-set に一致する場合にポイントを前進させます。この処理は、一致しない文字に到達するまで繰り返されます。関数は、移動した文字数を返します。
引数 character-set は、正規表現における ‘[…]’ の内部のような文字列ですが、‘]’ はそこで終了せず、‘\’ は ‘^’、‘-’ または
‘\’ をクォートします。したがって、"a-zA-Z" はすべての文字をスキップして最初の非文字の前で停止し、"^a-zA-Z" は非文字をスキップして最初の文字の前で停止します(正規表現を参照)。文字クラスも使用でき、例えば
"[:alnum:]" などがあります(文字クラスを参照)。
limit が指定された場合(数値またはマーカーである必要があります)、これは Point がスキップ可能なバッファ内の最大位置を指定します。Point は limit またはその手前で停止します。
以下の例では、ポイントは最初、‘T’ の直前に位置しています。フォームが評価されると、ポイントはその行の末尾(‘hat’ の ‘t& と改行の間)に位置します。この関数はすべての文字とスペースをスキップしますが、改行はスキップしません。
---------- Buffer: foo ---------- I read "∗The cat in the hat comes back" twice. ---------- Buffer: foo ----------
(skip-chars-forward "a-zA-Z ")
⇒ 18
---------- Buffer: foo ----------
I read "The cat in the hat∗
comes back" twice.
---------- Buffer: foo ----------
この関数は、character-setに一致する文字をスキップしながら、limitまでポイントを後方に移動させます。移動方向を除けば、skip-chars-forwardと全く同じです。
戻り値は移動距離を示します。0以下の整数です。