2013-09-24 15 views
5

che sto cercando di imparare emacs e vorrei utilizzare il tasto super-sulla mia tastiera per tutti i comandi meta di Emacs, perché io uso dwm come il mio window manager e utilizza il tasto Meta ampiamente. Ho letto this page, usandola per provareSuper User per meta comandi in emacs

(setq x-meta-keysym 'super) 
(setq x-super-keysym 'meta) 

senza fortuna. Idealmente mi piacerebbe semplicemente capovolgerli, ma solo in emacs. quando controllo le variabili x-meta-keysym e x-super-keysym con C-h v i comandi sembrano essere valutati correttamente. Quando controllo la chiave super con l'utility linux xev, conferma che il tasto che sto premendo è mappato a Super_L.

+0

Questo funziona per me. Tuttavia, il tuo gestore di finestre intercetterà i tasti premuti prima che Emacs li veda. Quindi se il tuo gestore di finestre usa la chiave super, otterrai conflitti che potrebbero far sembrare che Emacs non funzioni correttamente. – Tyler

+0

Quando li uso, cerco di usare M-x e vedere se ha qualche effetto. Quando provo con la mia super-chiave, inserisco semplicemente una x nel buffer. Ma quando provo con la meta key, M-x funziona ancora. Quindi non penso che sia il gestore di Windows. – adiviness

risposta

3

Quindi, risulta che i comandi sopra funzionano quando emacs non viene utilizzato in modalità terminale. Lo stavo provando nel terminale esclusivamente per cui non funzionava. Non sono sicuro di come sistemarlo nel terminale, ma è abbastanza buono, suppongo.

modifica: era l'emulatore di terminale che stava inghiottendo i tasti premuti prima che arrivassero a emacs, quindi i comandi originali funzionano, a patto che la pressione dei tasti lo faccia effettivamente su emacs.

3

Sono d'accordo con @Tyler

Nel mio caso io uso dwm come window manager, chiave in modo Meta (ALT) è utilizzato per controllare quasi tutte le caratteristiche. Quando si utilizza emacs, la meta chiave è in conflitto con alcune associazioni di tasti, ad esempio quando mi muovo tra le parole Mf o Mb (ecco perché sono arrivato a questo thread;)), quindi ho trovato tre opzioni per risolvere questo problema:

1) cambia emacs chiave vincolante e utilizzare super-chiave come meta chiave

(setq x-meta-keysym 'super 
     x-super-keysym 'meta) 

entrambi i simboli (variabili) sono obbligatori, perché se si utilizza solo x-super-keysym 'meta, permette entrambi i tasti come meta chiave. Se usi solo x-meta-keysym 'super, disabilita entrambi e de command buffer restituirà s-x non definito.

2) tasto di cambio DWM vincolante per meta al super chiave nel file config.h. date un'occhiata in http://dwm.suckless.org/customisation/windows_key

/* key definitions */ 
-#define MODKEY Mod1Mask /* meta (ALT) key */ 
+#define MODKEY Mod4Mask /* super (windows or cmd) key */ 

3) ignorare xmodmap attacchi keymap scambiando mod1 a super e mod4 a meta (assicurati di controllare ciò che Xmodmap ritorna a prima vista, e non pregiudica combinazioni di tasti di altri programmi)

Infine, ti consiglio di non modificare la meta key emacs predefinita perché è meno comoda per le tue dita e potrebbe farti rispondere lentamente ai tasti. Prova le opzioni 2 o 3 a seconda del tuo ambiente.

Problemi correlati