Problem beim erneuten Binden der isearch-Taste in Emacs

Problem beim erneuten Binden der isearch-Taste in Emacs

Hallo, ich versuche, die Emacs-Taste für isearch (Cs) an Ci, das mehr CUA ähnelt, zu binden, da Cs zum Speichern verpflichtet ist. Ich habe Folgendes gemacht:

(global-set-key "\C-i" 'isearch-forward)
(global-set-key (kbd "C-S-i") 'isearch-backward)

das funktioniert gut, bis ich versuche, die nächste Übereinstimmung zu finden. Das Problem ist, dass dies in Emacs durch erneutes Eintippen von Cs durchgeführt wird. Leider kann ich die isearch-repeat-forward-Befehle nicht an Ci binden, da dies die Bindung von Ci an isearch-forward aufhebt.

Ich hätte vielleicht nichts gegen so etwas wie Cr für Wiederholung, aber ärgerlicherweise hat Emacs einen anderen Wiederholungsbefehl für die inkrementelle Vorwärts- und Rückwärtssuche

Kennt jemand eine gute Lösung dafür?

Antwort1

isearch-repeat-forwardist gebunden an C-sdieIsearch-Modus. Sie werden vielleicht bemerken, dass Sie beim Drücken von C-seinen neuen Nebenmodus in Ihren Puffer eingeben. Da jeder Modus seine eigene Tastenzuordnung hat, sollten Sie die C-sZuordnung dieser Zuordnung ändern. Die define-keyFunktion erhält ein Argument, das die Moduszuordnung ist, der Sie die Taste zuordnen möchten, in diesem Fall isearch-mode. Versuchen Sie, dies auf Ihreminit.el

(define-key isearch-mode-map (kbd "C-i") 'isearch-repeat-forward)
(define-key isearch-mode-map (kbd "C-S-i") 'isearch-repeat-backward)

verwandte Informationen