问题:在我的Emacs-variant使用特定于操作系统的桌面功能的情况下,如何找到用于在Emacs中执行基于GUI的操作的Mx等效命令?
背景:传统理解指出Emacs中的所有内容都是命令,只要您知道命令的名称,就可以通过Mx调用这些命令.假设这个陈述是正确的,那么在基于"桌面"的Emacs变体中找到用于触发"GUI样式"菜单的命令名称的方法是什么?
例如,如果我要鼠标选择"文件"菜单以打开文件,则会弹出特定于操作系统的"GUI"样式文件打开对话框,等待我的输入.
我怎么能找到完全相同的Mx等效命令呢?
我认为 describe-key会告诉我我需要知道什么,但它有使用的迹象:
M-x menu-find-file-existing
不调用"GUI"样式文件打开对话框.相反,它使用Emacs内部非GUI-OS中立变体.
你需要欺骗的Emacs,以为没有被使用的键盘,这是不一样欺骗它误以为鼠标作为直观的被使用.:)
(defadvice find-file-read-args (around find-file-read-args-always-use-dialog-box act) "Simulate invoking menu item as if by the mouse; see `use-dialog-box'." (let ((last-nonmenu-event nil)) ad-do-it))
在WinXP上测试Emacs 22.2.1.我相信这个范例已经存在了一段时间,所以它应该适用于较旧的Emacs.如果XEmacs的工作方式与此类似,那就不清楚了.