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


26.2.2 defunの移動

これらのコマンドはトップレベルの主要な定義、またはdefunsにもとづいてポイントを移動したり、リージョンをセットアップします。

C-M-a

カレントまたは直前のdefunの先頭に移動します(beginning-of-defun)。

C-M-e

カレントまたは直後のdefunの最後に移動します(end-of-defun)。

C-M-h

カレントまたは後続のdefun全体の周囲にリージョンを設定します(mark-defun)。

カレントのdefunの先頭または最後に移動するコマンドは、C-M-a (beginning-of-defun)とC-M-e (end-of-defun)です。これらのコマンドの1つを繰り返すか、正の数引数を使用すると、繰り返しごとに動作方向の次のdefunに移動します。

C-M-aで負の引数-nを指定すると、次のdefunの開始へとn回移動します。これはC-M-eに引数nを与えたときに移動する位置と、正確に同じではありません。defunの終わりは通常、後続のdefunの開始と同じ位置ではないからです(空白文字、コメント、もしかしたら宣言がこれらのdefunを分割するからです)。同様にC-M-eに負の引数を与えると、defunの最後に後方に移動しますが、これはC-M-aに正の引数を与えた場合とは完全に異なる位置になります。

カレントのdefunを操作するには、C-M-h (mark-defun)を使用します。これはカレントのdefunの最後にマークをセットし、先頭にポイントを配します。Marking Objectsを参照してください。これは、そのdefunをkillしてファイルの他の場所に移動するための、一番簡単な準備方法です。ポイントがdefunの間にある場合、後続のdefunを使用します。マークがすでにアクティブのときにこのコマンドを使用すると、マークはセットしますがポイントは移動しません。さらに、連続してC-M-hを使用するとリージョンの最後が、複数のdefunを含むように拡張されます。

Cモードでは、mark-defunとほとんど同じなc-mark-functionを実行します。違いは、それが引数定義、関数名、リターンデータ型を含むことで、これによりC関数全体にリージョンが設定されます。これは標準のキーバインディングをメジャーモードが調整する方法の例です。これにより特定の言語によりふさわしい方法で標準的な作業を行うのです。この目的のために、他のメジャーモードは、これらのキーバインディングすべてを置き換えているかもしれません。