キーとコマンドで説明されている通り、Emacsの各コマンドはLisp関数であり、その定義によってインタラクティブな利用が可能になっています。あらゆるLisp関数と同様に、コマンドにも関数名があり、通常は小文字とハイフンで構成されています。
キーシーケンス(略してキー)とは、ひとまとまりとして意味を持つ入力イベントの連なりのことです。入力イベントには、文字、ファンクションキー、マウスボタンなど、コンピュータに送信できるあらゆる入力が含まれます。キーシーケンスの意味は、どのコマンドを実行するかを定めたバインドによって決まります。
キーシーケンスとコマンド機能の対応関係は、キーマップと呼ばれるデータ構造に記録されています。Emacsにはこうしたキーマップが数多く用意されており、それぞれ特定の場面で使用されます。
グローバルキーマップは常に有効であるため、最も重要なキーマップとなります。グローバルキーマップはファンダメンタルモード(メジャーモードを参照)用のキーを定義しており、これらの定義の多くは、ほとんど、あるいはすべてのメジャーモードに共通しています。各メジャーモードまたはマイナーモードは独自のキーマップを持つことができ、それによって一部のキーのグローバル定義を上書きできます。
例えば、g のような自己挿入文字が自己挿入文字であるのは、グローバルキーマップによってコマンド self-insert-command にバインドされているためです。C-a などの Emacs 標準の編集文字も、グローバルキーマップから標準的な意味を得ています。M-x keymap-global-set
のようなキーの再バインドコマンドは、新しいバインドをグローバルマップの適切な場所に格納することで動作します(インタラクティブなキーバインドの変更 を参照)。現在のキーバインドを確認するには、C-h b コマンドを使用してください。
最近のキーボードの多くには、文字キーに加えてファンクションキーが搭載されています。ファンクションキーは文字キーと同様に入力イベントを送信し、キーマップにバインドを設定することも可能です。キーシーケンスでは、ファンクションキーと文字キーを組み合わせて使用できます。例えば、キーボードにHomeというファンクションキーがある場合、EmacsはC-x Homeのようなキーシーケンスを認識できます。さらに、S-down-mouse-1のように、マウスイベントとキーボードイベントを組み合わせることも可能です。
テキスト端末では、ファンクションキーを入力すると、実際にはコンピュータに一連の文字が送信されます。その具体的な内容は、ファンクションキーや端末の種類によって異なります。(多くの場合、そのシーケンスは ESC [ から始まります。)Emacsが端末の種類を正しく認識していれば、こうしたシーケンスを単一の入力イベントとして自動的に処理します。
C-c に続いて文字(大文字または小文字、ASCII または非ASCII)が続くキーシーケンスは、ユーザー用に予約されています。Emacs 自体がこれらのキーシーケンスにバインドを割り当てることはありませんし、Emacs 拡張機能もこれらへのバインドを避けるべきです。言い換えれば、ユーザーは C-c a や C-c ç のようなキーシーケンスにバインドを割り当てることができ、それらが他の Emacs のバインドによって上書きされることがないという前提で利用できます。