コマンドの無効化は、そのコマンドを実行する前にユーザーの確認が必要であることを示します。無効化は、初心者にとって紛らわしい可能性のあるコマンドに適用され、誤って使用してしまうことを防ぎます。
コマンドを無効化するための低レベルな仕組みは、そのコマンドのLispシンボルにnil disabled以外のプロパティを設定することです。これらのプロパティは通常、ユーザーのinitファイル(Initファイルを参照)において、次のようなLisp式を用いて設定されます:
(put 'upcase-region 'disabled t)
一部のコマンドでは、これらのプロパティがデフォルトで設定されています(必要に応じて、initファイルで削除することも可能です)。
disabled
プロパティの値が文字列の場合、コマンドが無効であることを示すメッセージにその文字列が含まれます。例えば:
(put 'delete-region 'disabled
"Text deleted this way cannot be yanked back!\n")
無効化されたコマンドを対話的に呼び出した際に何が起こるかの詳細については、The GNU Emacs Manualの無効化を参照してください。コマンドを無効化しても、Lispプログラムから関数として呼び出す際には影響はありません。
disabled プロパティの値には、第1要素がシンボル query
であるリストを指定することも可能です。その場合、コマンドを実行するかどうかの確認がユーザーに求められます。リストの第2要素は、y-or-n-p と yes-or-no-p
のどちらを使用するかをそれぞれ示す nil または non-nil とし、第3要素は使用する質問とします。コマンドの確認機能を有効にするには、command-query 利便性関数を使用してください。
今後は command(シンボル)を特別な確認なしに実行できるようにし、今後のセッションにもこれが適用されるよう、ユーザーの init ファイル(Init ファイル を参照)を変更してください。
今後は command を実行する際に特別な確認を必須とし、今後のセッションにもこれが適用されるようユーザーの init ファイルを変更してください。
この変数の値は関数である必要があります。ユーザーが無効化されたコマンドを対話的に実行すると、そのコマンドの代わりにこの関数が呼び出されます。この関数では
this-command-keys
を使用して、ユーザーがコマンド実行のために何を入力したかを判定し、それによってコマンド自体を特定できます。
値は nil
でも構いません。その場合、無効化されたコマンドも含め、すべてのコマンドが正常に動作します。
デフォルトでは、値はユーザーに続行するかどうかを尋ねる関数となっています。