2009-05-13 11 views
19

chciałabym związać Ctrl + R do 'isearch-backward i wiążą Ctrl + SHIFT + R, w do 'tags-apropos ale nie mogę rozróżnić dwóch naciśnięć klawiszy.Czy Emacs może rozróżniać między ctrl-r i ctrl-shift-r?

Można emacs odróżnić Ctrl + R i Ctrl + Przesunięcie + R? Co powinien znaleźć się w moim pliku .emacs, aby zezwolić na ten keybinding?

Odpowiedz

31

Tak.

(global-set-key (kbd "C-r") 'isearch-backward) 
(global-set-key (kbd "C-S-r") 'tags-apropos) 

Sposób, aby dowiedzieć się odpowiedzi na tego rodzaju pytania jest zrobić pomocy na kluczowy Ch k i wpisz klawiszy, które Cię interesują. Co Emacs pokazuje w pomocy bufora jest ciągiem, który można przekazać do makra 'kbd.

+5

Lubię odpowiedzi "nauczaj człowieka łowić" – justinhj

2

Tak - jeden to "\C-r", drugi to "\C-R". Można je łatwo połączyć z oddzielnymi komendami. Na przykład, to powinno załatwić sprawę, jeśli umieszczony w pliku .emacs:

(global-set-key "\C-R" 'tags-apropos) 
+2

Niestety, to nie działa. Po przekazaniu łańcucha znaków do klucza globalnego dowolna wielka litera zostanie przetłumaczona na jego odpowiednik pisany małymi literami. Tak więc (znaczniki "C-R", "global-set-key") będą faktycznie wiązać Ctrl + r, a nie Ctrl + Shift + r. Aby obejść to tłumaczenie, można użyć makro "kbd", jak stwierdza inna odpowiedź. –

Powiązane problemy