2017-09-04 17 views
1

다음은 찾기가 어려운 한 가지입니다. Spacemacs (또는 Emacs)에서는 다른 키 조합이 무엇이든지간에 실행하기 위해 주어진 키 조합을 설정할 수 있습니까? 즉Spacemacs (또는 Emacs)에서 다른 키에 키를 바인딩 할 수 있습니까?

, 그것은 가능하다, 예를 들어, F5 키 항상 조합 C-c C-c가 어떻게해야 무엇이든 실행해야합니까? 예 :

(global-set-key [remap (kbd "F5")] (kbd "C-c C-c")) 

명확성을 위해 구체적인 예를 들어 보겠습니다. 단축키 C-c C-c은 코드가 .py 파일에있는 경우 버퍼의 코드를 Python 인터프리터로 보내거나 패키지가있는 R 콘솔로 보내려면 현재 버퍼의 전체 코드를 interpreter/console로 보내는 데 자주 사용됩니다 ESS는 .R 파일입니다.

자 이제이 두 언어에 대해 F5 키를 설정하려고한다고 가정 해 봅시다. 한 가지 분명한 해결책은 각 패키지마다 다른 키 바인딩을 구현하는 것입니다. 그러나 F5을 누를 때마다`C-c C-c와 관련된 명령이 호출되어야합니다. '라고 간단하게 말할 수 있다면 훨씬 쉬울 것입니다.

그런 것을 가질 수 있습니까? 나는 Spacemacs에서 그 일을하는 데 특히 관심이있다. 물론 Emacs에 대한보다 일반적인 대답은 받아 들일 만하다.

답변

1

그것은 당신의 문제를 해결해야

(define-key key-translation-map [f5] (kbd "C-c C-c")) 

보십시오.

+0

거의 완벽한 솔루션입니다! 주의해야 할 점은 새로운 키 조합이 '슈퍼'또는 '하이퍼'키를 사용하는 경우 어떤 이유로 든 작동하지 않는다는 것입니다. 예를 들면 다음과 같습니다.'(key-key-translation-map [H-f5] (kbd "C-c C-c"))' – Louis15

+0

키 입력의 철자가 확실합니까? 나는 항상'C-h k '을 실행하고 help/mini 버퍼가주는 것을보고,'kbd '에 넣는다. 예 : 'super-F5'에'(kdb "")'을 사용하십시오 (하이퍼가 없기 때문에 하이퍼 예제를 줄 수는 없습니다). – jpkotta