예를 들어, 저는 많이 사용하게 되는데 C-c a a이것을 f1.
나는 첫 번째 바인딩이 마지막으로 호출하는 함수(이번에는 org-agenda-list
)를 검색할 수 있다는 것을 알고 있지만 보다 일반적인 솔루션을 찾고 있습니다. 를 사용할 수 없을 것 같습니다 (global-set-key KEY COMMAND)
. 키를 누르는 것 자체가 a인지 확실하지 않기 때문입니다. COMMAND
(그러나 어쩌면 그럴 수도 있을까요?)
그렇다면 "여러 번의 연속 키 누르기"를 다른 바인딩에 바인딩하는 방법은 무엇입니까?
답변1
찾고 있는 코드는 다음과 같습니다.
(define-key keymap-1 (kbd "new prefix")
(lookup-key keymap-2 (kbd "old prefix")))
일반적으로 키맵의 이름을 표현식으로 알 필요가 없으며 적용되는 전역 및 로컬 맵을 반환합니다 (current-global-map)
. (current-local-map)
emacs 매뉴얼에는 기능 키 중 하나를 다시 매핑할 수 있다고 되어 있지만 f1, f2, f3, f4 또는 f10을 다시 매핑하려고 하면 이상한 일이 발생할 수 있다는 것을 발견했습니다. 이런 이유로 저는 보통 f5나 f6을 다시 매핑합니다. 내 .emacs 파일의 예를 들면 다음과 같습니다.
(add-hook 'planner-mode-hook
#'(lambda ()
(local-set-key (kbd "M-RET") 'muse-insert-list-item)
(local-set-key (kbd "M-S-RET") 'pcomplete)
(define-key (current-local-map) (kbd "<f5>")
(lookup-key (current-local-map) (kbd "C-c C-j")))))
M-RET플래너 모드에서 및를 설정 하고 해당 모드에서 M-S-RET접두사를 f5별칭으로 만듭니다.C-c C-j
lookup-key
그러나 불행하게도 키맵에서 합법적인 매크로를 이해하는 것처럼 항상 작동하는 것은 아닙니다 . 이런 경우에는 일반적으로 해결 방법을 찾을 수 있습니다. 문제가 있으면 다시 물어보세요.
답변2
내 생각에는 다음과 같이 해야 한다고 생각하지만 시도하지는 않았습니다.
(defun org-execute-my-action ()
(local-set-key (kbd "C-c q") 'org-name-of-function))
(add-hook 'org-mode-hook 'org-execute-my-action)
이 게시물자세한 내용을 확인할 수 있는 곳인 것 같습니다.