Next: , Previous: Disabling Commands, Up: Command Loop


20.13 コマンド履歴

コマンドループでは、実行した複雑なコマンドの履歴を管理していて、 それらのコマンドを簡単に繰り返せるようにしています。 複雑なコマンドとは、ミニバッファを使って引数を読むコマンドです。 これには、任意のM-xコマンド、任意のM-:コマンド、 ミニバッファから引数を読み取るinteractive指定を持つ任意のコマンドが 含まれます。 コマンド自身の実行中に明示的にミニバッファを使っても、 複雑なコマンドとはみなしません。

— Variable: command-history

この変数の値は、最近使った複雑なコマンドのリストであり、 各要素は評価すべきフォームを表す。 編集セッション中は、すべての複雑なコマンドを集積するが、 (変数history-lengthで指定される)最大サイズに達すると 新しい要素を追加するたびに古い要素を削除する。

          command-history
          ⇒ ((switch-to-buffer "chistory.texi")
              (describe-key "^X^[")
              (visit-tags-table "~/emacs/src/")
              (find-tag "repeat-complex-command"))

この履歴リストは、実際にはミニバッファ履歴(see Minibuffer History) の特別な場合です。 要素は文字列ではなく式なのです。

まえのコマンドを編集したり取り出すための専用コマンドがたくさんあります。 コマンドrepeat-complex-commandlist-command-historyは、 ユーザーマニュアル (see ミニバッファコマンドの繰り返し)に説明してあります。 ミニバッファ内では、通常のミニバッファ履歴コマンドを使えます。