Skip to content

Instantly share code, notes, and snippets.

@olmstadfm
Created November 14, 2015 13:55
Show Gist options
  • Save olmstadfm/aab2823d018e02213c62 to your computer and use it in GitHub Desktop.
Save olmstadfm/aab2823d018e02213c62 to your computer and use it in GitHub Desktop.
Прикольный способ для изготовления кнопок с переключателем в emacs
;; Когда ты нажимаешь на кнопку в первый раз, выполняется функция,
;; которая делает то, что ей положено (в этом примере - начинает
;; записывать макрос) и переопределяет клавишу по которой была
;; вызвана функция на другую функцию (в этом примере - остановка записи
;; макроса).
(defun toggle-kbd-macro-recording-on ()
"One-key keyboard macros: turn recording on."
(interactive)
(define-key global-map (this-command-keys) ; <= HERE
'toggle-kbd-macro-recording-off)
(start-kbd-macro nil))
(defun toggle-kbd-macro-recording-off ()
"One-key keyboard macros: turn recording off."
(interactive)
(define-key global-map (this-command-keys) ; <= HERE
'toggle-kbd-macro-recording-on)
(end-kbd-macro))
(global-set-key '[(f1)] 'call-last-kbd-macro)
(global-set-key '[(shift f1)] 'toggle-kbd-macro-recording-on)
;; via http://www.emacswiki.org/emacs/KeyboardMacros
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment