次: Which Function, 前: Balanced Editing, 上: Programs
通常、補完はミニバッファで行われます。 しかし、ある種の補完は任意のバッファで利用できます。 それはシンボル名に対する補完です。
M-<TAB>は、ポイント直前の部分的なシンボルを、 意味のあるシンボル名の集合から補完するコマンドを実行します。 部分的な名前から補完された追加文字はポイント位置に挿入されます。
バッファ内の部分的な名前に対して、 複数個の補完候補があり、しかも、追加できる共通部分がない場合には、 補完候補一覧を別のウィンドウに表示します。
ほとんどのプログラム言語向けメジャーモードでは、
M-<TAB>はコマンドcomplete-symbol
を実行します。
この関数には、2種類の補完機能があります。
通常、このコマンドはタグテーブル(see Tags)に基づいて補完を行います。
数引数(値は無関係)を指定すると、当該言語のinfoファイルの索引に
並べられた名前を対象として補完を行います。
すなわち、プログラム中で定義されたシンボル名を補完するには
引数なしでM-<TAB>を使い、
標準ライブラリ関数の名前を補完するにはC-u M-<TAB>を使います。
もちろん、infoに基づいた補完は、使用言語の標準ライブラリ関数に対する
infoファイルがあり、かつ、それがインストールされている場合にだけ動作します。
Emacs Lispモードでは、補完対象の名前空間は、
関数定義、値や属性を持つEmacs中の特殊なシンボルから成ります。
しかし、部分的なシンボルの直前に開き括弧があれば、
関数定義を持つシンボルだけを補完対象とします。
これを実現するコマンドはlisp-complete-symbol
です。
テキスト(text)モードとその関連モードでは、 M-<TAB>はスペルチェッカの辞書に基づいた補完を行います。 See Spelling。