Есть ли (повторение последней команды) в Emacs?
часто я копался в apropos и docs, ища что-то вроде следующего, только чтобы отказаться, чтобы вернуться к поставленной задаче:
(повтор последней команды)
выполните последнюю C - или M-команду, которую я только что выполнил (чтобы отскочить к клавише fn)
или иногда связанные:
(опишите-последнюю-функцию)
какое нажатие клавиши я просто ошибочно выдал, эффект которого я хотел бы добавить к моей сумке трюков. опишите-ключ есть близко, но требует знать, что я набрал.
Я просто прошу слишком много от моего верного помощника?
8 ответов:
что касается 'describe-last-function':
есть переменная
last-command
который установлен в символ, представляющий последнее, что вы сделали. Так что этот фрагмент elisp -(describe-function last-command)
- должен поднять документацию для того, что сразу произошло.так что вы могли бы сделать тривиальную работу
describe-last-function
вот так(defun describe-last-function() (interactive) (describe-function last-command))
положи этот elisp в
.emacs
или эквивалент, и вы будете иметь M-x опишите-последнюю-функцию.если вы ударили по нескольким клавишам или сделали что-то, что изменило последнюю команду с момента интересующей вас вещи,
command-history
функция может представлять интерес. Вы можете получить это по M-x command-history
функция повтора обеспечивается
repeat.el
пакет Emacs Lisp, который входит в стандартные дистрибутивы Emacs. Отrepeat.el
's документация:этот пакет определяет команду, которая повторяет предыдущую команду, что бы это ни было, включая его аргументы, какими бы они ни были. Этот команда подключается к клавише C-x z. Чтобы повторить предыдущую команду один раз, введите C-x z. чтобы повторить это во второй раз сразу после этого введите просто z. By набрав Z снова и снова, вы можете повторять команду снова и снова.
чтобы просмотреть дополнительную информацию о команде repeat, введите C-h F повторить RET внутри Emacs.
повторить последнюю команду
C-xz
после того, как вы нажали его, просто нажмите только z после этого и он повторится (без необходимости нажимать C-x снова).
вы можете повторить команды с C-xz и нажмите z повторять.
немного шокирует, никто не упомянул
repeat-complex-command
, доступно из привязки ключа C-x ESC ESC.
и
M-x view-lossage
показывает вам последнюю сотню(?) нажатия клавиш, которые вы ввели. Таким образом, Вы сможете увидеть, где команда находится. Это то, что я использовал, пока я только сейчас узнал оM-x command-history
который я думаю, что буду использовать сC-h w
сейчас.
Я не совсем уверен, но, может, вы ищете это?
команда C-xz (
repeat
) обеспечивает другой способ повторить Команды в Emacs много раз. Эта команда повторяет предыдущие Emacs команду, что бы это ни было. При повторении команды используются одни и те же аргументы которые использовались ранее; он не читает новые аргументы каждый раз.руководство Emacs, 8.11 повторение команды
может быть это тоже поможет... Из справки emacs дословно:
C-x M-ESC runs the command repeat-complex-command which is an interactive compiled Lisp function in `simple.el'. It is bound to <again>, <redo>, C-x M-:, C-x M-ESC. (repeat-complex-command ARG) Edit and re-evaluate last complex command, or ARGth from last. A complex command is one which used the minibuffer. The command is placed in the minibuffer as a Lisp form for editing. The result is executed, repeating the command as changed. If the command has been changed or is not the most recent previous command it is added to the front of the command history. You can use the minibuffer history commands M-n and M-p to get different commands to edit and resubmit.
лично я нашел идею Себастьяна полезны. Вот рабочая версия
(global-set-key "\C-r" #'(lambda () (interactive) (eval (car command-history))))
Comments