2009-05-13 7 views
19

Ich möchte Ctrl +R zu 'isearch-backward und binden Ctrl +Umschalt +R zu 'tags-apropos aber ich kann nicht unterscheiden zwischen den beiden Tastendrücken binden.Kann Emacs zwischen ctrl-r und ctrl-shift-r unterscheiden?

Kann Emacs unterscheiden zwischen Ctrl +R und Ctrl +Umschalt +R? Was sollte in meine .emacs-Datei gehen, um diese Tastenkombination zu ermöglichen?

Antwort

31

Ja.

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

Die Art und Weise die Antwort auf diese Art von Fragen, um herauszufinden, ist Hilfe zu einem Schlüssel Ch k zu tun, und die Tastenanschläge geben Sie interessiert sind. Was Emacs zeigt in den Hilfe Puffer ist die Zeichenfolge, die Sie an das Makro 'kbd übergeben können.

+5

Ich mag die Antworten "lehren einen Mann zu Fischen" – justinhj

2

Ja - eins ist "\C-r", das andere ist "\C-R". Sie können leicht gebunden werden, um Befehle zu trennen. Zum Beispiel soll dies den Trick tun, wenn in Ihrer .emacs Datei platziert:

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

Leider funktioniert das nicht. Wenn Sie eine Zeichenfolge an global-set-key übergeben, wird jedes Großbuchstabe in den entsprechenden Kleinbuchstaben übersetzt. Also (global-set-key "\ C-R" 'Tags-apropos) wird eigentlich Strg + r, nicht Strg + Shift + r binden. Um diese Übersetzung zu umgehen, können Sie das 'kbd Makro verwenden, wie die andere Antwort angibt. –