Во многих случаях emacs не выполняет макросы kbd точно так, как должно быть. НапримерКак выполнить макросы клавиатуры точно?
(execute-kbd-macro (read-kbd-macro "C-x C-f"))
Вместо того, чтобы закончить выполнение этого макроса с открытым минибуфером Find file: ...
Emacs просто открывает первый доступный файл или буфер Dired (в зависимости от ситуации). Как выполнить такие виды макросов kbd без таких недоразумений?
Обновление 2. Это просто пример таких макросов клавиатуры, которые ведут себя иначе, чем исходное поведение (т. Е. C-x C-f нажата). Ниже приведен еще один пример с grep
.
Обновление. Как упоминалось в @lawlist, я могу использовать
(key-binding (kbd "C-x C-f"))
для последовательности ключей трансформации для имени команды. Но он работает только тогда, когда есть команда. В более сложном случае, например,
(execute-kbd-macro (read-kbd-macro "C-u M-x grep RET"))
этот метод «грубой силы» не работает (я хочу продолжить редактирование шаблона для grep
но Emacs принудительно завершает взаимодействие).
Я думаю, что это связано нить может ответить на ваш вопрос ?: http://emacs.stackexchange.com/a/7495/ 2287 – lawlist
Спасибо, но в самом простом случае. Кажется, мне приходится вручную преобразовывать последовательность клавиш в эквивалент команды в каждом конкретном случае. – artscan
Я не вижу, какие макросы имеют к этому отношение?Вы не просто работаете здесь? 'Cx Cf' не является макросом, он по умолчанию вызывает функцию' find-file' – Squidly