Подтвердить что ты не робот

Как я могу сохранить макросы в стиле злого режима (vim style) для моего init.el?

Я использую злой режим, после переезда из Vim около года назад. Я сделал несколько настроек, но еще не разработал, как сохранить макросы в стиле vim.

Я могу определить и запустить их в злом режиме, используя те же самые ключи, что и в Vim.

  • q a, чтобы начать запись макроса.
  • q, чтобы остановить запись.
  • @ a для запуска макроса.

Я хотел бы сохранить некоторые из них в моем файле init.el для использования между сеансами, но мне не удалось найти ссылку на это в Интернете и не нашли правильный синтаксис.

Как я могу сохранить эти макросы клавиатуры злого режима в файл? Есть ли какая-то причина, по которой я должен использовать собственные макросы клавиатуры Emacs, и есть ли способ, которым я могу запустить их с помощью клавиши @ a?

4b9b3361

Ответ 1

Макросы злого режима не являются особыми, они просто обычные макросы Emacs, и вы сохраняете их одинаково, но вам нужно будет сделать какую-то специальную работу, чтобы попасть в злые регистры.

Пройдите через пример:

В буфере сделайте q f i foobar ESC q. Это сохранит макрос в регистре f, который вставляет foobar в буфер.

Теперь запустите M-x name-last-kbd-macro RET mymacro RET.

Перейдите в свой init.el файл и выполните M-x insert-kbd-macro RET mymacro RET.

Это выведет ваш макрос в вызов fset.

(fset 'mymacro [?i ?f ?o ?o ?b ?a ?r escape])

Если вы поместите это в свой init.el, у вас будет доступ к команде mymacro из M-x.

Но мы сохранили это в регистре f, и мы хотим, чтобы он был там при каждом запуске. Вам нужно извлечь вектор макроса из приведенного выше кода и сохранить его в регистре в init.el следующим образом:

;; make sure this is done after evil-mode has been loaded
(evil-set-register ?f [?i ?f ?o ?o ?b ?a ?r escape])

Теперь у вас будет доступ к нему из @!

См. документы об именах и вставке макросов в виде текста