2013-02-15 4 views
12

Ich benutze Emacs in Mac OS X-Terminal, mit Homebrew installiert.Wie wird die CMD-Schlüsselbindung in Emacs eingestellt?

Meine STRG-Taste ist meine C-Taste, und die ALT-Taste ist Meta.

Wie würde ich Tastenkombinationen für CMD-Tastenkombinationen definieren?

Zum Beispiel möchte ich CMD- (Pfeil nach rechts) setzen, um zum Ende der Zeile zu gehen.


EDIT

Ich habe versucht, Anregungen @ nickcarlo unter

(setq mac-command-modifier 'super) 
(global-set-key (kbd "s-<right>") 'move-end-of-line) 

Ich glaube nicht, CMD-Taste richtig super eingestellt wird, da ich das nicht sehen s-foo in Mini-Puffer wie ich würde, wenn ich C-x oder M-x oder irgendetwas getippt hätte. Ich habe bemerkt, dass CMD-Recht, wenn ich zwei Terminal-Fenster geöffnet habe, zwischen den beiden Terminalfenstern wechselt, also dachte ich, dass das möglicherweise jede benutzerdefinierte Einstellung blockiert. Allerdings habe ich versucht:

(global-set-key (kbd "s-9") 'move-end-of-line) 

.. und CMD-9 noch nichts tut, außer piepen mir zu sagen, dass ich etwas falsch gedrückt haben.

nicht-CMD-Taste-Combos Einstellung scheint gut zu funktionieren, wie:

(global-set-key (kbd "s-<right>") 'move-end-of-line) 

"s" der Verweis auf Ihre Befehlstaste zu sein:

(global-set-key (kbd "C-w") 'move-end-of-line) 
+4

AFAIK, können Sie dies nicht tun, solange Sie Emacs laufen in einem Terminal. Der Mac-Cmd-Modifikator wird nicht übergeben (und ist möglicherweise nicht in standardmäßigen Terminalprotokollen/Zeichensätzen codierbar). Wenn Sie möchten, dass dies funktioniert, sollten Sie darüber nachdenken, Emacs.app als Anwendung auszuführen. –

Antwort

11

Sie es mit so etwas wie festlegen .

PS: Ich bin gerade nicht auf meinem Mac, also bin ich nicht sicher, was genau Sie schreiben müssen, um es auf die spezifischen Schlüssel zu setzen, die Sie erwähnten, um es an das Ende der Zeile zu verschieben, aber Befehl wird durch dargestellt s in Emacs.

BEARBEITEN Nur getestet auf meinem Mac. Dies ist der genaue Code, den Sie schreiben würden (wenn Sie ihn global festlegen wollten), um Ihre Befehlstaste + rechte Pfeiltaste zu binden, um den Cursor an das Zeilenende zu bewegen.

Wenn die oben nicht funktioniert, könnten Sie versuchen auch

(global-set-key (kbd "\s <right>") 'move-end-of-line) 

Der Unterschied zwischen dem oben und dieses ist, dass die oben CMD entspricht + rechts und dieses entspricht CMD und dann freigeben CMD und drücke die rechte Taste. Beide funktionieren auf OS X auf meinem System.

auch folgende Post überprüfen Sie Ihre CMD als Superschlüssel gesetzt, falls Ihr Emacs registrieren nicht schon als solche:

http://ergoemacs.org/emacs/emacs_hyper_super_keys.html

Insbesondere können Sie den folgenden Code verwenden, um festgelegt up Ihren CMD-Schlüssel als Super:

+0

Das kann nicht funktionieren. Ich sollte sagen, dass ich Emacs Live verwende - https://github.com/overtone/emacs-live .. aber ich habe versucht, eine Plain Vanilla Emacs und immer noch kein Ergebnis. Dieser Code - https://github.com/lest/emacs-config/blob/master/rc-hotkeys.el - scheint darauf hinzuweisen, dass das Format sein sollte, aber das funktioniert immer noch nicht. Es ist, als ob die Bindung einfach nicht registriert wird. – cannyboy

+0

@cannyboy Ich habe meine Kopie von Emacs von macports bekommen (port install emacs-app) Vielleicht kann ich deshalb mit dem obigen Code arbeiten. Ich habe Emacs Live noch nie benutzt, daher bin ich mir nicht sicher, wie es sich von dem unterscheidet, das ich habe. –

+0

@cannyboy Sobald Sie diese Zeile oder eine andere Zeile wie diese geschrieben haben, gehen Sie zum Ende der Zeile und führen Sie C-x C-e aus und sehen Sie, ob der Name der Funktion im darunter liegenden Mini-Puffer angezeigt wird. Sie können Ihre Tastenbelegungen auch überprüfen, indem Sie C-h b ausführen und prüfen, ob dort eine Liste angezeigt wird. –

1

Schritt 1: cx cf .emacs // öffnet.Emacs-Datei

Schritt 2: Sie die folgenden Zeilen am Ende der .emacs Datei hinzufügen

;; changing the command to control 
    (setq mac-command-modifier 'control) 

Schritt 3: Speichern .emacs

Schritt 4 file: Mx eval-Puffer // Mx = Alt -x // Dies evaluiert .emacs buffer und lädt Emacs

Schritt 5: Versuchen CMD-e bis zum Ende der Zeile gehen. // Jetzt verhält sich CMD wie Steuerelement

Schritt 6: Immer noch funktioniert CMD-e nicht neu Emacs.

Viel Spaß mit Emacs!

+0

Wäre das nicht seine Befehlstaste als seine Steuertaste? Ich denke nicht, dass er das beabsichtigt. –

+1

Ich fühle es ist komfortabler cmd als cnt zu verwenden, es spart viel Zeit und reduziert kleine Fingerschmerzen. – USK

+1

Ich verstehe das und es scheint die allgemeine Praxis der OS X Emacs Community zu sein (nicht gefolgt von mir, da ich den CMD-Schlüssel an andere Operationen gebunden habe). Ich sagte nur, dass ich nicht glaube, dass der Posted seine Meta-Operationen zu seinem CMD-Schlüssel ändern wollte. –

6

In Aquamacs, was für mich gearbeitet ist die folgende

(global-set-key (kbd "A-r") 'my-command) 
+2

Vielen Dank. Das war, was ich für meine Aquamacs suchte :) – shivams