Emacs Macポート(railwaycat)でcommand-h hideを無効にする方法


7

私は私からの切り替えしようとしている、マックOSX上でEmacsを実行マックOSX用のEmacsEmacsのマックポート。キーバインドに問題があります。

たとえば、command-hをにバインドしようとしていreplace-stringます。

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

これはうまくいきませんでした。だから私はそれをハイパーとしてバインドしようとしました:

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

しかし、それもうまくいきませんでした。

他のキーバインドを変更する(動作するようには思えないs-os-pなど)。

これは関連している可能性があります:「その他を非表示」をrailwaycat / emacs-mac-portのキー「Msh」にバインドする方法は?

command-h for replace-stringは、Emacs for Mac OSXで動作しますが、Emacs Mac Portでは、アプリケーションウィンドウを非表示または最小化するだけです。Emacs Macポートでのキーバインドの動作は、Emacs for Mac OSXでの動作とは異なりますか?一部のキーバインドはEmacs Macポートにハードコードされていますか?その場合、どのようにしてそれらをオーバーライドできますか?

更新:他のユーザーが同じ問題を抱えているようです。https://github.com/railwaycat/emacs-mac-port/issues/78


通常のものは機能しますか?: (define-key global-map [?\s-h] 'replace-string) そして、私はこれを通常のEmacsのために持っています: (setq ns-command-modifier 'super)
法律家、2015

いいえ、同じ結果です。
白熱症者

他のキーバインドを変更する(動作するようには思えないs-os-pなど)。
白熱

他のキーバインドが機能するC-h k s-h場合、それが登録されているかどうか、またはOSXがそれをインターセプトしている可能性があるかどうかを試してみてはいかがですか?
弁護士、2015

それも機能しません。傍受されているようです。しかし、これはEmacs Mac Portアプリケーションに関するものであり、OSX自体ではなく、Emacs for Mac OSXで機能するためです。
白熱症者

回答:


14

答えを見つけました。

Emacs Macポートでhは、Emacsキーバインドをバイパスし、代わりに「pass command to system」メッセージをMac OSXに送信して、アプリケーション全体を非表示にします。

これは、古いCarbon Emacsの動作の痕跡です。それを無効にするには、これを使用します:

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

ソース:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.