2013-01-17 10 views
8

Il mio problema è simile a questo: Innanzitutto, accedo a un server remoto tramite ssh -Y utilizzando Terminal.app su Mac. Quindi aprire le emacs installati su quel server remoto digitandoCambia Meta in un'opzione quando usi XQuartz su mac per aprire emacs installato sul server remoto

emacs 

A causa della aggiungo l'opzione -Y quando usando ssh, i emacs si apre nel XQuartz installato su Mac.

In questo momento, il problema si presenta: la chiave di opzione non viene considerata come Meta e solo il tasto ESC viene considerato come Meta. Ma voglio usare il tasto opzione come Meta.

Come posso risolverlo?

risposta

6

Date un'occhiata a http://www.emacswiki.org/emacs/MetaKeyProblems

specificamente questa parte.

È quindi possibile eseguire emacs dalle finestre X11 (Applicazioni/Utility/X11.app) con l'opzione/tasto alt come chiave meta. Inoltre, è possibile utilizzare il comando xmodmap per rimappare il tasto comando su Controllo solo in X11. Questo ha il vantaggio di consentire al tasto di comando di comportarsi in modo prevedibile con altre applicazioni Mac. xmodmap può anche garantire che il tasto Alt/Opzione sia impostato come chiave Meta in emacs. È possibile farlo con il seguente file ~/.Xmodmap (le linee che iniziano con punti esclamativi sono commenti e possono essere omessi):

! 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 

utilizzare il file di cui sopra con il comando

xmodmap ~/.xmodmap 

prima di iniziare emacs (ad esempio, da/etc/bashrc se si usa l'opzione shell login su xterm, cioè xterm -ls in X11/Application/Personalizza per terminale).

+2

Grazie mille! Ho fatto proprio come hai risposto e funziona! Ma quando ho eseguito xmodmap ~/.Xmodmap esso stampa i seguenti errori: X errore di richiesta non riuscita: badValue (parametro intero fuori portata per il funzionamento) Maggiore codice operativo di richiesta non riuscita: 118 (X_SetModifierMapping) Valore in richiesta non riuscita: 0x17 Numero di serie della richiesta non riuscita: 16 Numero di serie corrente nel flusso di output: 16 In ogni caso, funziona davvero. Grazie mille, Doon! – Negelis

+0

che sembra essere un problema/bug nel server x se cerchi google. – Doon

+0

Come @Negelis, funziona anche se dà un errore. – Realfun

Problemi correlati