menu-bar-mode
グラフィカルなEmacsセッションを無効にして実行している場合C-<mouse-3>
は、メニューの内容全体をポップアップダイアログボックスとして表示する必要があります。ただし、ターミナルでEmacsを実行している場合、これは間違いなく機能しません。あなたはどちらの場合かを指定していないので、私は仮定をしないようにします。mouse-popup-menubar
および/または関数へのカスタムマウスバインディング(オプションで、キーボード修飾子を使用)を作成することも可能ですmouse-popup-menubar-stuff
が、最終的には、上記で説明した標準機能と同様の動作を複製することしかできません。
やや柔軟性がなくグローバルな性質menu-bar-mode
(つまり、すべてのEmacsフレームに適用され、フックなどによるカスタマイズが比較的少ないという事実)のため、バニラで希望する動作を正確に実現することは非常に難しいと思います。 Emacs。カスタム関数を作成して一時的に有効にし、選択後に再度無効にするmenu-bar-mode
などの方法を使用することも可能かもしれませんが、よくわかりません。post-command-hook
時間が許せばさらに調査していきます。
また、サードパーティのメニューバーパッケージ(qv、EmacsWikiのメニューバーセクション)を調べることもできます。
編集:私はあなたが役に立つと思うかもしれないかなり厄介な解決策を一緒にハックしました...
(add-hook
'pre-command-hook
(lambda ()
(when (eq menu-bar-mode 42)
(menu-bar-mode -1))))
(defun my-menu-bar-open ()
(interactive)
(unless menu-bar-mode
(menu-bar-mode 1))
(menu-bar-open)
(setq menu-bar-mode 42))
私はこれをグラフィカルセッションでテストしましたが、実行my-menu-bar-open
と選択の間にコマンドとしてEmacsが登録するアクション(基本的にはナビゲート以外のもの)を実行しない限り、必要な動作をシミュレートしているように見えますメニュー自体)。の選択は、変数42
のより一般的な値に対してフック関数がアクティブ化されるリスクを最小限に抑えることを目的としたマジックナンバー(およびダグラスアダムズオマージュ)です。menu-bar-mode
これが決してエレガントであるとは言いませんが、明らかに醜い方法で機能します。これを使用する場合は、(または任意の)にバインドmy-menu-bar-open
するだけです。f11
(global-set-key [f11] 'my-menu-bar-open)
または、類似した方法で使用し、代わりにの一時的な切り替えを実行するpre-command-hook
ようにアドバイスすることで、非常に類似した機能を実現できる可能性があります。menu-bar-open
menu-bar-mode