apropos コマンドは、「ファイル操作に使えるコマンドにはどのようなものがあるか」といった質問に答えます。より正確には、クエリをapropos パターンとして指定します。このパターンは、単語、空白で区切られた単語のリスト、または正規表現のいずれかです。
以下の各 apropos コマンドは、ミニバッファ内の apropos パターンを読み込み、そのパターンに一致する項目を検索して、結果を別のウィンドウに表示します。
コマンド (apropos-command)
を検索します。接頭辞引数を指定すると、非対話型関数も検索対象になります。
関数や変数を検索します。対話型関数(コマンド)と非対話型関数の両方を検索できます。
ユーザー定義可能な変数を検索します。prefix引数を指定すると、ユーザー定義不可能な変数も検索対象となります。
変数を検索します。prefix引数を指定すると、カスタマイズ可能な変数のみを検索します。
バッファローカル変数を検索します。
指定したパターンに一致する値を持つ変数を検索します。prefix 引数を指定すると、パターンに一致する定義を持つ関数や、パターンに一致するプロパティを持つ Lisp シンボルも検索対象となります。
指定したパターンに一致する値を持つバッファローカル変数を検索します。
ドキュメント文字列が指定したパターン (apropos-documentation)
に一致する関数や変数を検索します。
最もシンプルなaproposパターンは、単語1つです。その単語を含むものはすべてパターンに一致します。したがって、ファイルに対して動作するコマンドを探すには、C-h a file RETと入力します。これにより、copy-fileやfind-fileなどを含め、‘file’を含むすべてのコマンド名の一覧が表示されます。各コマンド名には、簡潔な説明と、現在そのコマンドを呼び出すために使用できるキーの一覧が添えられています。今回の例では、C-x C-fと入力することでfind-fileを呼び出せることが示されます。
デフォルトでは、クエリ結果を含む apropos バッファを表示するウィンドウは選択されていませんが、変数 help-window-select を nil
以外の任意の値にカスタマイズすることで、そのウィンドウを選択状態にできます。
aproposバッファに表示されている関数定義、変数、またはシンボルのプロパティについて詳しく知りたい場合は、mouse-1やmouse-2でクリックするか、その位置に移動してRETと入力してください。
apropos
パターンで複数の単語を指定する場合、マッチするには名前にそれらの単語が少なくとも2つ含まれている必要があります。したがって、ポイントより前のテキストの一部分を削除するコマンドを探しているなら、C-h a kill back backward behind before RET を試してみてください。実際のコマンド名である kill-backward はこれにマッチしますし、もし kill-text-before
というコマンドがあれば、指定された単語を2つ含んでいるため、それもマッチします。
さらに柔軟な指定を行うには、正規表現を指定できます(正規表現の構文を参照)。apropos パターンに正規表現の特殊文字 ‘^$*+?.\[’ のいずれかが含まれている場合、そのパターンは正規表現として解釈されます。
Emacsコマンドの命名規則に従い、aproposパターンで役立つ単語をいくつか紹介します。これらをC-h aで使用することで、命名規則の感覚も掴めるでしょう。
char, line, word, sentence, paragraph, region, page, sexp, list, defun, rect, buffer, frame, window, face, file, dir, register, mode, beginning, end, forward, backward, next, previous, up, down, search, goto, kill, delete, mark, insert, yank, fill, indent, case, change, set, what, list, find, view, describe, default.
変数 apropos-do-all が nil
でない場合、ほとんどの apropos コマンドは、接頭辞引数が指定されたかのように動作します。ただし、1つだけ例外があります。接頭辞引数のない
apropos-variable は、apropos-do-all の値にかかわらず、常にすべての変数を検索します。
デフォルトでは、apropos-documentation を除くすべての apropos
コマンドは、結果をアルファベット順に表示します。変数 apropos-sort-by-scores
が nil
以外の場合、これらのコマンドは代わりに各結果の関連性を推測し、最も関連性の高いものを優先的に表示します。apropos-documentation
コマンドはデフォルトで結果を関連性順に表示します。アルファベット順に表示するには、変数 apropos-documentation-sort-by-scores を nil に変更してください。