Previous: マウスボタンのリバインド, Up: キーバインディングのカスタマイズ [Contents][Index]
コマンドを無効にするとは、そのコマンドを対話的に呼び出しユーザーに確認を求めることを意味します。コマンドを無効にする目的は、ユーザーが間違ってコマンドを実行するのを防ぐためです。わたしたちは初心者を混乱させるようなコマンドにたいして、これを行なっています。
無効なコマンドを呼び出そうとすると、Emacsはコマンド名、コマンドのドキュメント、すぐに何を行なうかの手引きを対話的に表示します。その後、Emacsはコマンドを要求されたとおり実行するか、そのコマンドを有効にしてから実行するか、キャンセルするか入力を求めます。コマンドを有効にすると決めた場合は、他の質問 — 永続的に有効にするか、それともカレントセッションでだけ有効にするか — にも応えなければなりません(永続的に有効にする場合、これは自動的に初期化ファイルを編集することにより機能します)。!とタイプして、カレントセッションだけにたいして、すべてのコマンドを有効にすることもできます。
コマンド無効化の直接的なメカニズムは、コマンドにたいするLispシンボルのdisabled
プロパティーに非nil
をputすることです。以下はこれを行なうLispプログラムです:
(put 'delete-region 'disabled t)
disabled
プロパティーの値が文字列の場合、その文字列はコマンドが使用されたときに表示されるメッセージに含まれます。
(put 'delete-region 'disabled "It's better to use `kill-region' instead.\n")
初期化ファイルを直接編集するか、初期化ファイルを編集するM-x disable-commandコマンドにより、コマンドを無効にできます。同様にM-x enable-commandはコマンドを永続的に有効にするために、初期化ファイルを編集します。Emacs初期化ファイルを参照してください。
Emacsが-qまたは--no-init-fileオプション(初期化オプションを参照してください)で呼び出された場合、これらのコマンドは初期化ファイルを編集しません。Emacsは初期化ファイルを読み込んでいないので、これを行なうと情報が失われるかもしれないからです。
コマンドが無効にされているかどうかは、それを呼び出すのに使用されるキーとは独立しています。M-xを使用してコマンドを呼び出しても、無効化は適用されます。しかしLispプログラムから関数として呼び出す場合、コマンドの無効化は効力をもちません。