2013-01-17 9 views
8

Mein Problem ist folgendermaßen: Erstens, ich logge mich auf einem Remote-Server über ssh-Y mit der Terminal.app auf dem Mac. Öffnen Sie dann die auf diesem Remote-Server installiert Emacs vonÄndern Sie Meta zu Optionsschlüssel bei der Verwendung von XQuartz auf Mac zum Öffnen von Emacs auf Remote-Server installiert

emacs 

Eingabe Aufgrund ich die Option -Y hinzufügen, wenn ssh verwenden, die Emacs im XQuartz installiert auf dem Mac geöffnet wird.

Zu diesem Zeitpunkt kommt das Problem: der Optionsschlüssel wird nicht als Meta behandelt und nur die ESC-Taste wird als Meta behandelt. Aber ich möchte den Optionsschlüssel als Meta verwenden.

Wie kann ich es lösen?

Antwort

6

Werfen Sie einen Blick auf http://www.emacswiki.org/emacs/MetaKeyProblems

speziell diesen Teil.

Sie können dann emacs aus X11-Fenstern (Programme/Dienstprogramme/X11.app) mit der Option/Alt-Taste als Metaschlüssel ausführen. Darüber hinaus können Sie den Xmodmap-Befehl verwenden, um den Befehlsschlüssel nur unter X11 auf Control umzulagern. Dies hat den Vorteil, dass sich die Befehlstaste erwartungsgemäß mit anderen Mac-Anwendungen verhält. xmodmap kann außerdem sicherstellen, dass der Alt-/Wahlschlüssel in Emacs als Metaschlüssel festgelegt ist. Sie können dies mit der folgenden ~/.Xmodmap-Datei (die Linien mit Ausrufungszeichen Start Kommentare und können weggelassen werden):

! undo any meta keys already set 
clear Mod1 
! keycodes 63 and 71 are the left and right COMMAND buttons adjacent to the spacebar; set them to be control keys 
keycode 63=Control_L 
keycode 71=Control_R 
! keycodes 66 and 69 are the option/alt keys; assign them as Meta keys 
keycode 66=Meta_L 
keycode 69=Meta_R 
! now tell X11 that the Meta keys act as the Mod1 (meta) modier key; that is, when they are pressed with KEY, it is the same as hitting M-KEY 
add Mod1 = Meta_L Meta_R 
! tell X11 that the Control keys are Control modifiers, so when pressed with u (for example) it is the same as hitting C-u 
add Control = Control_L Control_R 

Verwenden Sie die obige Datei mit dem Befehl

xmodmap ~/.xmodmap 

vor dem Start emacs (zum Beispiel aus/etc/bashrc, wenn Sie die Option login shell für xterm verwenden, dh xterm -ls in X11/Application/Customize für Terminal).

+2

Vielen Dank! Ich habe getan wie du geantwortet hast und es funktioniert! Aber wenn ich laufe xmodmap ~/.Xmodmap druckt die folgenden Fehler: X Fehler gescheiterten Anfrage: badValue (integer Parameter außerhalb des zulässigen Bereichs für den Betrieb) Haupt Opcode gescheiterten Anfrage: 118 (X_SetModifierMapping) Wert in fehlgeschlagene Anfrage: 0x17 Seriennummer der fehlgeschlagenen Anfrage: 16 Aktuelle Seriennummer im Ausgangsstrom: 16 Wie auch immer, es funktioniert wirklich. Vielen Dank, Doon! – Negelis

+0

das scheint, Problem/Fehler in der X-Server, wenn Sie dafür google. – Doon

+0

Wie @Negelis, funktioniert auch wenn es einen Fehler gibt. – Realfun