(このほとんどを削除!!)
Emacs は同じような(もしくはそれを修正した)コマンドを(より)簡単に実行できるよ う、ユーザーの実行した complex コマンドのヒストリを保持します。 complex コマン ドとは、ミニバッファを用いるコマンドのことです。このため、M-x コマンド、ESC ESC コマンド、ミニバッファからアーギュメントを読み込むコマンドを(全て) 含みま す。
(前の)コマンドのエディティングや呼び出しを行なうため、いくつかのコマンドと 2つ の(それ専用の)モードが存在します。
コマンドヒストリは制限なく増えるようになっていますが、ガベージコレクションの際 30 エントリーに切られます(訳注:trimmed)。
以下のコマンド、repeat-complex-command, next-complex-command, previous- complex-command, last-command-history に関してはユーザーマニュアルで述べられて います( GNU Emacs Manual のコマンドヒストリのセクション参照)。
Variable: repeat-complex-command-map
この変数の値は、ミニバッファにおいて "complex" コマンドを繰り返して用いた い場合に用いるスパースキーマップ(訳注:sparse keymap)です。このミニバッ ファを用いるコマンドが(複数)存在しています。
Variable: command-history
このグローバル変数の値は、最近(訳注:実行された)コマンドのリストです。各コ マンドは、(評価を行なう)フォームとして示されます。このリストの長さに制限は ありません。これは、エディティングセッション中の(全ての) complex コマンド を保持し続けます。
User Option: list-command-history-max
(ユーザーマニュアルになくてはいけない!!) このグローバル変数の値は、list- command-history で作られるリストの長さの最大値を定めます。最大値を必要とす る場合、正でなくてはならず、 (全ての) complex コマンドを保持しておきたい場 合、nil でなくてはいけません。
Function: command-history-mode
(ユーザーマニュアルになくてはいけない!!) この関数は command-history 中のコ マンドを調べるメジャーモードを定義します。リストされるコマンドの数は list-command-history-max で定められます。 list-command-history-filter が non-nil の場合、コマンドヒストリはそれでフィルターされます。
これは、文字が自分自身を挿入しない点と digit がプレフィックスアーギュメン トを与える点とを除いて Emacs-Lisp モードと似ています。タブはインデントを行 ないません。以下のコマンドを提供します。
LFD, RET ヒストリの次の行に移る。 DEL ヒストリの前の行に移る。
この関数は command-history-hook が non-nil の場合、その値を呼びます。この モードは起動されるたびにコマンドヒストリのリストを (再)構成します。(訳注: ??)