1

Я хотел бы, чтобы в Emacs последовательность ключей FOO была истинным псевдонимом последовательности BAR. Всякий раз, когда вводится FOO, он должен выполнять то же действие, что и ввод BAR.

Я не могу использовать что-то вроде:

(global-set-key (kbd "FOO") (key-binding (kbd "BAR")))

Это связывает FOO с текущим действием для BAR. Если BAR будет позже переназначен или перезаписан или скрыт второстепенным режимом, это не будет отражено FOO.

Я попытался обойти это, используя:

(global-set-key (kbd "FOO") 
  (lambda ()
   (interactive)
   (key-binding (kbd "BAR")))

Но это все еще не настоящий псевдоним. Интерактивная спецификация для лямбды не такая, как для действия, к которому привязан BAR. Я полагаю, что могу решить эту проблему с помощью (interactive (advice-eval-interactive ...)) , но это кажется довольно сложным для чего-то, что звучит как базовая функциональность.

Так что, возможно, я пропустил некоторые API Emacs для создания псевдонимов ключей?

1 ответ1

1

Ты можешь попробовать:

(global-set-key (kbd "FOO") (kbd "BAR"))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .