2017-09-04 2 views
1

Hier ist eine Sache, die schwer zu finden war. Ist es in Spacemacs (oder Emacs) möglich, eine bestimmte Tastenkombination für die Ausführung einer anderen Tastenkombination zu verwenden?Ist es in Spacemacs (oder Emacs) möglich, Schlüssel an andere Schlüssel zu binden?

Mit anderen Worten, ist es möglich, zum Beispiel den F5 Schlüssel immer auszuführen, was auch immer die Kombination C-c C-c tun soll? Etwas wie:

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

Lassen Sie mich ein konkretes Beispiel für die Klarheit geben. Die Tastenkombination C-c C-c wird häufig verwendet, um den gesamten Code des aktuellen Puffers an den Interpreter/console zu senden, sei es um den Code des Puffers an den Python-Interpreter zu senden, oder um ihn an eine R-Konsole mit Paket zu senden ESS in einer .R Datei.

Nehmen wir nun an, dass man den Schlüssel F5 haben möchte, um das für diese zwei Sprachen und vielleicht noch mehr zu tun. Eine naheliegende Lösung wäre, einfach Schlüsselbindungen zu implementieren, die für jedes Paket unterschiedlich sind. Es wäre jedoch viel einfacher, wenn einfach gesagt werden könnte: wenn F5 gedrückt wird, sollte dies zu jedem Befehl führen, der mit dem Aufruf von C-c C-c verbunden ist.

Ist es möglich, so etwas zu haben? Ich bin besonders daran interessiert, das für Spacemacs zu tun, aber natürlich ist eine allgemeinere Antwort für Emacs akzeptabel.

Antwort

1

Versuchen

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

Es Ihr Problem lösen sollte.

+0

Fast perfekte Lösung! Der Nachteil ist, dass es aus irgendeinem Grund nicht funktioniert, wenn die neue Tastenkombination "Super" - oder "Hyper" -Tasten verwendet. Zum Beispiel: '(define-key Schlüssel-Übersetzung-Karte [H-f5] (kbd" C-c C-c "))' – Louis15

+0

Sind Sie sicher, dass Sie die Tasten richtig drücken buchstabieren? Ich mache immer nur 'C-h k ' und sehen, was der Hilfe/Mini-Puffer gibt, dann setzen Sie das in 'kbd'. Z.B. benutze '(kdb" ")' für 'super-F5' (Ich kann kein Hyper-Beispiel geben, weil ich kein Hyper habe). – jpkotta

Verwandte Themen