22.15 История команд

Цикл команд хранит историю сложных команд, которые были выполнены, чтобы было удобно повторять эти команды. Сложная команда — это та, для которой чтение аргументов в интерактивном режиме использует минибуфер. Это включает любую команду M-x, любую команду M-: и любую команду, чья спецификация interactive считывает аргумент из минибуфера. Явное использование минибуфера во время выполнения самой команды не делает команду сложной.

Переменная: command-history

Значение этой переменной — это список недавних сложных команд, каждая из которых представлена в виде формы для вычисления. Она продолжает накапливать все сложные команды в течение сеанса редактирования, но когда она достигает максимального размера (см. История минибуфера), самые старые элементы удаляются по мере добавления новых.

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

Этот список истории на самом деле является частным случаем истории минибуфера (см. История минибуфера), с одной особенностью: элементы являются выражениями, а не строками.

Существует ряд команд, предназначенных для редактирования и вызова предыдущих команд. Команды repeat-complex-command и list-command-history описаны в руководстве пользователя (см. Повторение в Руководство GNU Emacs). В минибуфере доступны обычные команды истории минибуфера.