como desativar command-h hide no Emacs Mac Port (railwaycat)?

7

Eu corro o Emacs no Mac OSX, estou tentando mudar do Emacs para Mac OSX para a porta Mac do Emacs . Estou tendo alguns problemas com minhas combinações de teclas.

Por exemplo, estou tentando vincular o comando-h replace-string.

(setq mac-command-modifier 'super)
(define-key key-minor-mode-map (kbd "s-h") 'replace-string)

Isso não funcionou. Então, tentei vinculá-lo como hiper:

(define-hyper-key "h" 'replace-string)

mas isso também não funcionou.

Alterar outras combinações de teclas parecem funcionar ( s-o, s-p, etc).

Isso pode estar relacionado: Como vincular "Ocultar outros" a uma chave "Msh" no railwaycat / emacs-mac-port?

command-h para replace-stringtrabalhos no Emacs para Mac OSX, mas no Emacs Mac Port, apenas oculta / minimiza a janela do aplicativo. As combinações de teclas funcionam de maneira diferente no Emacs Mac Port e no Emacs para Mac OSX? Algumas combinações de teclas estão codificadas no Emacs Mac Port e, em caso afirmativo, como posso substituí-las?

Atualização : parece que outras pessoas estão tendo o mesmo problema. https://github.com/railwaycat/emacs-mac-port/issues/78

homem incandescente
fonte
As coisas normais funcionam ?: (define-key global-map [?\s-h] 'replace-string) E eu tenho isso para o Emacs regular: (setq ns-command-modifier 'super)
lawlist
Não, mesmo resultado.
Incandescentman
Alterar outras combinações de teclas parecem funcionar ( s-o, s-p, etc).
Incandescentman
Se outras combinações de teclas funcionarem, que tal tentar C-h k s-hver se ele é registrado ou se o OSX está interceptando?
lawlist
Isso também não funciona. Parece que está sendo interceptado. Mas é algo sobre o aplicativo Emacs Mac Port e não o próprio OSX, pois com o Emacs para Mac OSX ele funciona.
Incandescentman

Respostas:

14

Eu encontrei a resposta.

No Emacs Mac Port, hignora todas as combinações de teclas do Emacs e envia uma mensagem "passar comando ao sistema" para o Mac OSX, que então oculta todo o aplicativo.

Este é um vestígio de comportamento do antigo Carbon Emacs. Para desativá-lo, use este:

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

Fonte:

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-hide

homem incandescente
fonte