Wie deaktiviere ich Command-H Hide in Emacs Mac Port (Railwaycat)?

7

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-pusw.).

Dies kann zusammenhängen: Wie binde ich "Andere verstecken" an einen Schlüssel "Msh" im Railwaycat / Emacs-Mac-Port?

Befehl-h für replace-stringfunktioniert 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

Glühlampenmann
quelle
Funktionieren die regulären Sachen?: (define-key global-map [?\s-h] 'replace-string) Und ich habe dies für reguläre Emacs: (setq ns-command-modifier 'super)
Lawlist
Nein, gleiches Ergebnis.
Glühlampenmann
Ändern andere keybindings scheint zu funktionieren ( s-o, s-pusw.).
Glühlampenmann
Wenn andere Tastenkombinationen funktionieren, können Sie dann versuchen, festzustellen, C-h k s-hob sie registriert sind, oder ob OSX sie abfängt.
Lawlist
Das funktioniert auch nicht. Sieht so aus, als würde es abgefangen. Aber es geht um die Emacs Mac Port-Anwendung und nicht um OSX selbst, da es mit Emacs für Mac OSX funktioniert.
Glühlampenmann

Antworten:

14

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:

(setq mac-pass-command-to-system nil)

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

Glühlampenmann
quelle