このセクションではエコーエリア内にメッセージを表示する標準的な関数を説明します。
この関数はエコーエリア内にメッセージを表示する。format-message
関数(文字列のフォーマットを参照)の場合と同じようにformat-stringはフォーマット文字列、argumentsはそのフォーマット仕様にたいするオブジェクトである。フォーマットされた結果文字列はエコーエリア内に表示される。それにface
テキストプロパティが含まれる場合には指定されたフェイスにより表示される(フェイスを参照)。この文字列は*Messages*バッファーにも追加されるがテキストプロパティは含まれない(*Messages*へのメッセージのロギングを参照)。
フォーマット内のグレイヴアクセントとアポストロフィーは"Missing `%s'"から"Missing ‘foo’"のように、通常は対応するcurved quoteとして結果内に変換される。この変換に影響を与えたり抑制する方法についてはテキストのクォートスタイルを参照のこと。
バッチモードでは後に改行が付加されたメッセージが標準エラーストリームにプリントされる。
inhibit-message
が非nil
のときはエコーエリアにはメッセージを何も表示せずに‘*Messages*’へのロギングだけとなる。
format-stringがnil
か空文字列なら、message
はエコーエリアをクリアーする。エコーエリアが自動的に拡張されていたら、これにより通常のサイズに復元される。ミニバッファーがアクティブなら、これによりスクリーン上に即座にミニバッファーのコンテンツが復元される。
(message "Reverting `%s'..." (buffer-name)) -| Reverting ‘subr.el’... ⇒ "Reverting ‘subr.el’..."
---------- Echo Area ---------- Reverting ‘subr.el’... ---------- Echo Area ----------
エコーエリアやポップバッファー内に自動的にメッセージを表示するには、そのサイズに応じてdisplay-message-or-buffer
(以下参照)を使用する。
警告: 逐語的なメッセージとして独自の文字列を使用したければ、単に(message
string)
と記述してはならない。stringに‘%’、‘`’、‘'’が含まれていると望まぬ結果に再フォーマットされるかもしれない。かわりに(message
"%s" string)
を使用すること。
この変数が非nil
なら、エコーエリア内に表示するためのメッセージテキストを単一の引数とする関数であること。その関数はmessage
および関連する関数から呼び出されることになる。その関数がnil
をリターンすると、通常どおりメッセージはエコーエリアに表示される。関数が文字列をリターンすると、その文字列が元メッセージのかわりにエコーエリアに表示される。その関数が他の非nil
値をリターンした場合にはメッセージが処理済みであることを意味するので、message
はエコーエリアに何も表示しない。その関数で表示されたメッセージのクリアーに使用可能なclear-message-function
も参照のこと。
デフォルト値はミニバッファーアクティブ時にミニバッファー終端にメッセージを表示する関数。しかしアクティブなミニバッファーに表示されるテキストの何らかの文字がminibuffer-message
テキストプロパティ(特殊な意味をもつプロパティを参照)をもつ場合には、メッセージはそのプロパティをもつ最初の文字の前に表示される。
この変数が非nil
の場合には、message
および関連する関数は引数となるメッセージがnil
か空文字列なら、それを引数なしで呼び出す。
この関数は通常はエコーエリアメッセージの表示後、次の入力イベントの到着時に呼び出される。これはset-message-function
により指定されたカウンターパートとなる関数が表示したメッセージのクリアーを期待される関数である。
デフォルト値はアクティブなミニバッファーに表示されたメッセージをクリアーする関数。
この変数が非nil
なら、message
および関連する関数はメッセージの表示にエコーエリアを使用しない。
この構文はbody実行の間にエコーエリア内にメッセージを一時的に表示する。これはmessageを表示してbodyを実行して、それからエコーエリアの前のコンテンツをリストアするとともにbodyの最後のフォームの値をリターンする。
この関数はmessage
と同様にメッセージを表示するが、エコーエリアではなくダイアログボックスにメッセージを表示するかもしれない。この関数があるコマンド内からマウスを使用して呼び出されると
— より正確にはlast-nonmenu-event
(コマンドループからの情報を参照)がnil
かリストならメッセージの表示にダイアログボックスかポップアップメニュー、それ以外ならエコーエリアを使用する(これはy-or-n-p
が同様の決定を行う際に使用する条件と同じ。Yes-or-Noによる問い合わせを参照)。
呼び出しの前後でlast-nonmenu-event
を適切な値にバインドすることによりエコーエリアでのマウスの使用を強制できる。
この関数はmessage
と同様にメッセージを表示するが、利用可能なら常にダイアログボックス(かポップアップメニュー)を使用する。端末がサポートしないためにダイアログボックスやポップアップメニューが使用できなければ、message-box
はmessage
と同様にエコーエリアを使用する。
この関数はメッセージmessageを表示する。messageには文字列かバッファーを指定できる。これがmax-mini-window-height
で定義されるエコーエリアの最大高さより小さければ、message
を使用してエコーエリアに表示される。それ以外ならメッセージを表示するためにdisplay-buffer
はポップアップバッファーを使用する。
エコーエリアに表示したメッセージ、またはポップアップバッファー使用時はその表示に使用したウィンドウをリターンする。
messageが文字列ならオプション引数buffer-nameはポップアップバッファー使用時にメッセージ表示に使用するバッファー名(デフォルトは*Message*)。messageが文字列でエコーエリアに表示されていれば、いずれにせよコンテンツをバッファーに挿入するかどうかは指定されない。
オプション引数actionとframeはdisplay-buffer
の場合と同様に、バッファーが表示されている場合のみ使用される。
この関数はエコーエリア内にカレントで表示されているメッセージ、またはそれが存在しなければnil
をリターンする。