2010-07-12 10 views
5

ich verschiedene Version ohne Erfolg versucht haben:Rebind C-Raum in Emacs

(global-set-key (kbd "C-<space>") 'tempo-complete-tag) 

(global-set-key [C-space] 'tempo-complete-tag) 

Ich verwende CUA-Modus und läuft Emacs auf Ubuntu Version: GNU Emacs 23.1.50.1 (x86_64-pc- linux-gnu, GTK + Version 2.18.0) von 2009-09-27 auf erklommen, von Debian modifizierte

Wenn ich tempo-complete-tag manuell ausführen es mir sagt, es C-Raum gebunden ist, aber C-Raum läuft noch cua-set-mark (oder wenn CUA deaktiviert ist, set-mark-command).

Wie kann ich die C-Space-Verknüpfung in Emacs an einen Befehl binden, den ich entscheide?

Antwort

18

C-h k (key) wird Ihnen sagen, wie Emacs auf einen bestimmten Schlüssel verweist (in diesem Fall "C-SPC"). (global-set-key (kbd "C-SPC") 'tempo-complete-tag) wird tun, was Sie wollen.

Ich benutze immer die (kbd) Funktion für Tastenbelegungen, wie es Ihnen ermöglicht, auf den Schlüssel auf die gleiche Weise zu verweisen, wie es sonst überall sonst geschrieben wird.

Denken Sie daran, dass C-SPC eine Standardbindung set-mark-command ist! Persönlich würde ich etwas anderes wählen :)

+0

Hurra! Das hat es geschafft! Ich dachte an 'Backspace' und dachte naiv, dass der Raum 'Raum' genannt wird. Aber wir haben es hier mit Emacs zu tun. :-) –

+0

Einverstanden; Meta-Space könnte besser sein als ctrol-space – johnbakers

+0

Für alle, die 'bösen-Modus' verwenden:' v' ist set-mark-Befehl im 'bösen-Modus' also mach weiter und benutze C-SPC. –

4

Denken Sie auch daran, dass "global-set-key" nur tun, was Sie wollen, wenn Ihr Modus es nicht überschreibt. Ich bin zu faul, Tempo zu laden, um zu sehen, ob es tatsächlich C-SPC enthebt, aber es könnte gut tun so, in diesem Fall sollten Sie dies in Ihrem .emacs setzen:

(add-hook 'tempo-mode-hook 
      (lambda() 
      (local-set-key (kbd "C-SPC") 'tempo-complete-tag) 
      )) 
+0

Toller Tipp! Ich vergesse immer wieder, wie mächtig die Haken sind ... –

0

Alternative Syntax für Schlüssel Bindung ist über vector:

(global-set-key [?\M-\ ] 'cycle-spacing) 
(global-set-key [?\C-\ ] 'tempo-complete-tag)