[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14. Commands

コマンド は対話的に、すなわち入力イベントに結びつけられた結果とし て呼ばれる、Lisp 関数です。

コマンドは関数 (defun を使う)と同じ方法で定義されますがコマンドの 本体の形式は必ず interactive 宣言 を含まなければなりません。こうす ると関数は対話的に呼ぶことができ、call-command 関数にどのようにコ マンドに与えられた引数の値を計算すればいいか教えることができます。

interactive 宣言は特別形式 interactive を呼出すように見えますが、 実際のところこの特別形式は常に nil を返し、副次的な効果はありませ ん。唯一のこの特別形式の効果は call-command 関数にその関数が対話 的に呼ばれることを示すだけです。宣言形式の二番目の要素 (interactive シンボルの後)はコマンドに与えられる引数の値がどのよ うに計算されるかを定義します。

interactive 宣言の構造は次のようになっています:

 
(interactive [calling-spec])

コマンドが定義されるときに interactive 宣言を含むようにするには次のよう にします:

 
(defun some-command (arg1)
  "Optional documentation string."
  (interactive ...)
  ...

calling-spec 形式はコマンドが対話的に呼ばれるときに与えられる引数 の値を定義し、それは次の内の一つです:

コマンドが実行されるさいに call-command 関数が使われます。これは (interactive 宣言を使って)コマンドに適用する引数値のリストをつくり、それ からコマンドを呼出します。

Function: commandp object
もしその引数が対話的に呼ばれるなら t を返します。もし object が関数(すなわちシンボルか lambda 表現)なら interactive 宣言 を含むコマンドです。

コマンドである唯一の他のオブジェクトは関数呼出し形式です。これらのタイプ のコマンドの使用はおすすめできませんが、ときどき役立ちます。

Function: call-command command &optional prefix-arg
この関数はコマンド command を対話的に呼びます。コマンドが何で構成 されているかについては前述の commandp の記述を参照して下さい。

もし prefix-argument が nil でなければこのコマンドに対する current-prefix-arg 変数の値を定義し、通常その変数の値はグローバル な prefix-arg からとられます。



This document was generated by SATO Satoru on October, 28 2000 using texi2html