Next: , Previous: , Up: Motion   [Contents][Index]


30.2.6 バランスのとれたカッコを越えた移動

以下はバランスの取れたカッコ式(balanced-parenthesis。これらの式を横断して移動することと関連してEmacsではsexp(S式)とも呼ばれる)と関係のあるいくつかの関数です。これらの関数がさまざまな文字を処理する方法は構文テーブル(syntax table)が制御します。Syntax Tablesを参照してください。sexpやその一部にたいする低レベルのプリミティブについてはParsing Expressionsを参照してください。ユーザーレベルのコマンドについてはCommands for Editing with Parentheses in The GNU Emacs Manualを参照してください。

Command: forward-list &optional arg

この関数はバランスの取れたカッコのグループをarg (デフォルトは1)グループ前方に移動する(単語やクォート文字のペアーでクォートされた文字列は無視される)。

Command: backward-list &optional arg

この関数はバランスの取れたカッコのグループをarg (デフォルトは1)グループ後方に移動する(単語やクォート文字のペアーでクォートされた文字列は無視される)。

Command: up-list &optional arg escape-strings no-syntax-crossing

この関数はarg (デフォルトは1)の外側のカッコへ前方に移動する。負の引数では後方へ移動するが、それでもより浅いスポットへと移動する。 escape-stringsが非nil (インタラクティブ時が該当)なら、取り囲まれた文字列の外側にも同様に移動する。no-syntax-crossingが非nil (インタラクティブ時が該当)なら、複数の文字列を横断してリスト先頭に移動するかわりに、取り囲む文字列から脱け出すことを優先する。エラー時にはポイントの位置は未定義。

Command: backward-up-list &optional arg escape-strings no-syntax-crossing

この関数はup-listとど同様だが引数の正負が逆。

Command: down-list &optional arg

この関数はカッコをarg (デフォルトは1)レベル内側、前方に移動する。負の引数では後方に移動するが、それでも深いレベル(-argレベル)に移動する。

Command: forward-sexp &optional arg

この関数はバランスの取れた式(balanced expressions)をarg (デフォルトは1)前方に移動する。バランスの取れた式にはカッコ等で区切られた式、および単語や文字列定数のようなものも含まれる。Parsing Expressionsを参照のこと。たとえば、

---------- Buffer: foo ----------
(concat∗ "foo " (car x) y z)
---------- Buffer: foo ----------

(forward-sexp 3)
     ⇒ nil

---------- Buffer: foo ----------
(concat "foo " (car x) y∗ z)
---------- Buffer: foo ----------
Command: backward-sexp &optional arg

この関数はバランスの取れた式(balanced expressions)を、arg (デフォルトは1)後方に移動する。

Command: beginning-of-defun &optional arg

この関数は後方にarg番目のdefunの先頭に移動する。argが負なら実際には前方に移動するが、defunの終端ではなく先頭に移動することは変わらない。argのデフォルトは1。

Command: end-of-defun &optional arg

この関数は前方にarg番目のdefunの終端に移動する。argが負なら実際には後方に移動するが、defunの先頭ではなく終端に移動することは変わらない。argのデフォルトは1。

User Option: defun-prompt-regexp

このバッファーローカル変数は非nilならdefunの始まりとなる開きカッコの前に出現し得るテキストを指定する正規表現を保持する。つまりこの正規表現にたいするマッチで始まり、その後に開きカッコ構文(open-parenthesis syntax)が続くものがdefunである。

User Option: open-paren-in-column-0-is-defun-start

この変数の値が非nilなら列0にある開きカッコはdefunの始まりとみなされる。nilなら列0の開きカッコは特別な意味をもたない。デフォルトはt。リテラル文字列の列0にカッコがあるような場合には偽陽性を回避するためにバックスラッシュでエスケープすること。

Variable: beginning-of-defun-function

この変数は非nilならdefunの開始を見つける関数を保持する。関数beginning-of-defunは通常の手法を使うかわりに、この関数に自身のオプション引数を渡して呼び出す。引数が非nilなら、その関数はその回数分の関数呼び出しによってbeginning-of-defunが行うように後方に移動すること。

Variable: end-of-defun-function

この変数は非nilならdefunの終端を見つける関数を保持する。関数end-of-defunは、通常の手法を使うかわりにその関数を呼び出す。