Ich führe Emacs unter Mac OSX aus und versuche, von Emacs für Mac OSX zu Emacs Mac Port zu wechseln . Ich habe Probleme mit meinen Tastenkombinationen.
Zum Beispiel versuche ich, Befehl-h an zu binden replace-string
.
(setq mac-command-modifier 'super)
(define-key key-minor-mode-map (kbd "s-h") 'replace-string)
Das hat nicht funktioniert. Also habe ich versucht, es als hyper zu binden:
(define-hyper-key "h" 'replace-string)
aber das hat auch nicht funktioniert.
Ändern andere keybindings scheint zu funktionieren ( s-o
, s-p
usw.).
Dies kann zusammenhängen: Wie binde ich "Andere verstecken" an einen Schlüssel "Msh" im Railwaycat / Emacs-Mac-Port?
Befehl-h für replace-string
funktioniert unter Emacs für Mac OSX, aber unter Emacs Mac Port wird das Anwendungsfenster nur ausgeblendet / minimiert. Funktionieren Tastenkombinationen in Emacs Mac Port anders als in Emacs für Mac OSX? Sind einige Tastenkombinationen fest in Emacs Mac Port codiert, und wenn ja, wie kann ich sie überschreiben?
Update : Anscheinend haben andere das gleiche Problem. https://github.com/railwaycat/emacs-mac-port/issues/78
quelle
(define-key global-map [?\s-h] 'replace-string)
Und ich habe dies für reguläre Emacs:(setq ns-command-modifier 'super)
s-o
,s-p
usw.).C-h k s-h
ob sie registriert sind, oder ob OSX sie abfängt.Antworten:
Ich habe die Antwort gefunden.
Umgeht in Emacs Mac Port ⌘halle Emacs-Tastenkombinationen und sendet stattdessen eine Nachricht "Befehl an System übergeben" an Mac OSX, die dann die gesamte Anwendung verbirgt.
Dies ist ein Überbleibsel des Verhaltens der alten Carbon Emacs. Verwenden Sie Folgendes, um es zu deaktivieren:
Quelle:
http://newsgroups.derkeiler.com/Archive/Comp/comp.emacs/2005-11/msg00091.html
http://comp.emacs.xemacs.narkive.com/dBRWEljn/apple-carbon-emacs-disable-cmd -h-verstecken
quelle