Next: , Previous: , Up: ミニバッファー   [Contents][Index]


21.7 Yes-or-Noによる問い合わせ

このセクションではユーザーにyes-or-noの確認を求める関数を説明します。関数y-or-n-pは1文字での応答に使用できます。この関数は不注意による誤った答えが深刻な結果を招かない場合に有用です。yes-or-no-pは3文字から4文字の答えを要求するので、より重大な問いに適しています。

マウスやその他ウィンドウシステムのジェスチャーを使って呼び出されたコマンド、あるいはメニュー経由で呼び出されたコマンドからこれらの関数のいずれかが呼び出されると、ダイアログボックスがサポートされていればダイアログボックスかポップアップメニューを使って質問にたいする答えを求めます。それ以外の場合にはキーボード入力を使用します。呼び出しの前後でlast-nonmenu-eventに適切な値をバインドすることによってマウス、あるいはキーボード入力のいずれかの使用を強制できます。tならキーボードによる対話、リストにバインドすればダイアログボックスの使用が強制されます。

yes-or-no-py-or-n-pはどちらもミニバッファーを使用します。

Function: y-or-n-p prompt

この関数はユーザーに答えを尋ねてミニバッファーに入力を求める。ユーザーがyをタイプしたらtnをタイプしたらnilをリターンする。この関数はyesの意味でSPC、noの意味でDELも受け入れる。quitとしてC-gC-]も受け入れる。これは問いがミニバッファーを使用して、かつミニバッファーを抜けるためにユーザーがC-]の使用を試みるかもしれないということが理由。応答は1文字であり、問いを終了させるためのRETは必要ない。大文字と小文字は等価である。

“答えを尋ねる”とはミニバッファーにprompt、その後に文字列‘(y or n) をプリントすることを意味する。期待される答え(ynSPCDEL、もしくは質問を終了するその他のキー)以外が入力されると、この関数は‘Please answer y or n.’と応答して繰り返し答えの入力を要求する。

If prompt is a non-empty string, and it ends with a non-space character, a ‘SPC’ character will be appended to it.

この関数は実際にはミニバッファーを使用するが答えの編集を許容しない。答えを求めているる間、カーソルはモイニバッファーに移動される。

答えとその意味は、たとえ‘y’と‘n’であっても固定されたものではなく、キーマップquery-replace-mapによって指定される(検索と置換を参照)。特にユーザーがrecenterscroll-upscroll-downscroll-other-windowscroll-other-window-down(それぞれquery-replace-map内でC-lC-vM-vC-M-vC-M-S-vにバインドされている)のような特殊な応答をエンターした場合、この関数はは指定されたウィンドウの再センタリングやスクロール操作を処理してから再度答えを求める。

y-or-n-pの呼び出し中にhelp-form (ヘルプ関数を参照)を非nil値にバインドすると、help-charの押下によりhelp-formを評価して結果を表示する。help-charpromptに自動的に追加される。

Function: y-or-n-p-with-timeout prompt seconds default

y-or-n-pと同様だがユーザーがseconds秒以内に答えないと、この関数は待つのをやめてdefaultをリターンする。これはタイマーをセットアップすることによって機能する。引数secondsは数字である。

Function: yes-or-no-p prompt

この関数は質問してミニバッファーに答えの入力を求める。これはユーザーが‘yes’をエンターするとt、‘no’をエンターするとnilをリターンする。ユーザーは応答を終えるためにRETをタイプしなければならない。大文字と小文字は等価。

yes-or-no-p starts by displaying prompt in the minibuffer, followed by the value of yes-or-no-prompt (default ‘(yes or no) ’). The user must type one of the expected responses; otherwise, the function responds ‘Please answer yes or no., waits about two seconds and repeats the request.

If prompt is a non-empty string, and it ends with a non-space character, a ‘SPC’ character will be appended to it.

yes-or-no-py-or-n-pより多くの作業をユーザーに要求するので、より重大な決定に適している。

以下は例:

(yes-or-no-p "Do you really want to remove everything? ")

;; 前の式を評価した後、
;;   空のミニバッファーに
;;   以下のプロンプトが表示される:

---------- Buffer: minibuffer ----------
Do you really want to remove everything? (yes or no)
---------- Buffer: minibuffer ----------

ユーザーが最初にy RETとタイプしたら無効になる。なぜならこの関数は‘yes’という単語全体を要求しているので、一時停止して以下のプロンプトを説明のために表示する。

---------- Buffer: minibuffer ----------
Please answer yes or no.
Do you really want to remove everything? (yes or no)
---------- Buffer: minibuffer ----------
This page has generated for branch:master, commit:762705fb24fd90db318f2e51c1e762452d26f7e2 to check Japanese translation.