命令循环会保存已执行的复杂命令历史,
方便重复执行这些命令。复杂命令(complex command)
是指交互参数读取使用迷你缓冲区的命令。
包括所有 M-x 命令、M-: 命令,
以及 interactive 声明从迷你缓冲区
读取参数的命令。命令执行过程中显式使用
迷你缓冲区不会使其被视为复杂命令。
该变量的值为最近复杂命令列表,每个元素为 待求值的表达式。编辑会话期间会持续累积 所有复杂命令,达到最大长度后 (see 迷你缓冲历史) 新增元素时会删除最旧元素。
command-history
⇒ ((switch-to-buffer "chistory.texi")
(describe-key "^X^[")
(visit-tags-table "~/emacs/src/")
(find-tag "repeat-complex-command"))
该历史列表实际是迷你缓冲区历史的特例 (see 迷你缓冲历史), 特殊之处在于元素是表达式而非字符串。
有若干命令用于编辑和调用历史命令。
repeat-complex-command 与
list-command-history 在用户手册中说明
(see Repetition in The GNU Emacs Manual)。
在迷你缓冲区中可使用常规历史命令。