2016-07-01 23 views
2

Standardmäßig sind C-S-t und M-S-t in meinem Emacs nicht gebunden. Wenn ich sie drücke, werden sie daher in C-t und M-t übersetzt. Gut, aber ich möchte, dass sie für eine zwicken auf die ursprüngliche Funktion verwenden, und setzen daher diese Zeilen in meinem .emacs:Was bewirkt, dass `M-S-t` (meta + shift + t) die Schlüsselbindung nicht übernimmt?

(global-set-key (kbd "C-S-t") 'transpose-chars-backward) 
(global-set-key (kbd "M-S-t") 'transpose-words-backward) 

Die Funktionen dort meine eigenen sind und gut funktionieren, wenn sie über M-x genannt.

Dies funktioniert für C-S-t, aber nicht für M-S-t, die immer noch in M-t übersetzt wird. Die Nachricht auf C-h k M-S-t bestätigt dies.

Es ist nicht, dass es unmöglich ist, M-S- Kombinationen im Allgemeinen zu konfigurieren, weil M-q und M-S-q verschiedene Dinge tun.

Was verursacht diese Inkonsistenz und wie kann ich es umgehen?

Ich benutze Aquamacs auf Mac OS X 10.9.5. Hier

Antwort

3

Sie haben zwei verschiedene Möglichkeiten, um zu tun, was Sie wollen:

(global-set-key (kbd "M-T") 'transpose-words-backwards) 
(global-set-key [(meta shift t)] 'transpose-words-backwards) 

Ich bin nicht sicher, was die (kbd "M-S-t") verursacht funktioniert anders als (kbd "C-S-t"), btw. Vor einiger Zeit wurde ich ein Adept zur Vektornotation ([(meta shift t)]), da ich es für vorhersehbarer halte (ich bekomme es immer beim ersten Mal richtig, und mit der Notation kbd brauchte ich manchmal ein paar Versuche).

+0

'C-hk M-S-t' gibt" M-t (übersetzt von M-T) ... ". Meiner Erfahrung nach sagt 'C-h k' immer genau, was man' kbd' geben soll. – jpkotta

+0

@jpkotta Ich nehme an, Ihre Erfahrung mit Aquamacs ist begrenzt. ;) was ich bekam war "⌥T (übersetzt von ⌥⇧T)". Ich werde nicht untersuchen, ob ich das tatsächlich als kbd-Argumente verwenden könnte. – njlarsson

+0

@njlarsson Du hast Recht, ich habe noch nie Aquamacs benutzt. Das klingt aber wie ein Käfer; Sie sollten es melden. – jpkotta