2013-09-24 9 views
5

Ich versuche Emacs zu lernen und möchte den Super Key auf meiner Tastatur für alle Meta-Befehle in Emacs verwenden, weil ich dwm als meine Fenster-Manager verwenden und es den Metaschlüssel verwendet ausführlich. Ich habe gelesen this page, es zu versuchenUser Super Key für Meta-Befehle in Emacs

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

ohne Glück zu verwenden. Im Idealfall möchte ich sie einfach umdrehen, aber nur in Emacs. Wenn ich die Variablen x-meta-keysym und x-super-keysym mit C-h v untersuche, scheinen die Befehle korrekt ausgewertet zu werden. Wenn ich den Super-Schlüssel mit dem Linux-Dienstprogramm xev überprüfe, bestätigt es, dass der Schlüssel, den ich drücke, Super_L zugeordnet ist.

+0

Das funktioniert für mich. Ihr Fenstermanager wird jedoch Tastenanschläge abfangen, bevor Emacs sie sieht. Wenn Ihr Fenstermanager also den Super-Schlüssel verwendet, werden Sie Konflikte bekommen, die den Eindruck erwecken könnten, dass Emacs nicht richtig funktioniert. – Tyler

+0

Wenn ich sie benutze, versuche ich M-x zu benutzen und zu sehen, ob es irgendwelche Auswirkungen hat. Wenn ich mit meinem Super Key versuche, füge ich einfach ein x in den Puffer ein. Aber wenn ich mit dem Metaschlüssel versuche, funktioniert M-x noch. Also ich denke nicht, dass es der Windows-Manager ist. – adiviness

Antwort

3

Also, es stellt sich heraus, dass die obigen Befehle funktionieren, wenn Emacs nicht im Terminal-Modus verwendet wird. Ich habe es ausschließlich im Terminal versucht, weshalb es nicht funktionierte. Ich bin mir nicht sicher, wie ich es im Terminal reparieren soll, aber es ist gut genug, nehme ich an.

edit: es war der terminal emulator, der die tasten drücken musste, bevor sie zu emacs kamen, also funktionieren die ursprünglichen befehle, solange der taster tatsächlich zu emacs kommt.

3

Ich stimme mit @Tyler

In meinem Fall verwende ich dwm als Window-Manager, so Meta (ALT) Taste fast alle ihre Funktionen zur Steuerung verwendet wird. Bei der Verwendung von Emacs, Metakey-Konflikte mit einigen Tastenbindungen, zB: wenn ich um Worte Mf oder Mb (darum bin ich zu diesem Thema;)), so habe ich drei Möglichkeiten, um mit diesem Problem loszuwerden:

1) Änderung emacs Schlüssel Bindung und Superschlüssel als Meta-Taste

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

beider Symbole (Variablen) sind erforderlich, verwendet werden, da bei Verwendung von nur x-super-keysym ‚Meta ermöglicht nur, sie beiden Tasten als Meta Schlüssel. Wenn Sie nur x-meta-keysym 'super verwenden, werden beide deaktiviert und de Befehlspuffer gibt s-x undefined zurück.

2) ändern dwm Schlüsselbindung für Meta zu Super-Schlüssel in der Datei config.h. werfen Sie einen Blick 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) außer Kraft setzen xmodmap keymap Bindungen mod1 super und mod4 Meta Swapping (unbedingt Xmodmap kehrt auf den ersten Blick zu überprüfen, was, und nicht keybindings anderer Programme beeinflussen)

Schließlich empfehle ich, den standardmäßigen Emacs-Metaschlüssel nicht zu ändern, weil er für Ihre Finger weniger komfortabel ist und dazu führen kann, dass Sie langsam auf Tastenanschläge reagieren. Probieren Sie die Optionen 2 oder 3 abhängig von Ihrer Umgebung aus.