在 emacs 中,如果我打开了两个框架并且鼠标位于另一个框架上(即不在活动框架上),则按下该Alt
键会产生<switch-frame>
事件。
虽然此事件本身不执行任何操作,但它会破坏诸如 之类的事情yank-pop
,如果它像往常一样绑定到 ,它将不再起作用M-y
(因为不是命令序列yank
-> yank-pop
,而是现在我们有yank
-> handle-switch-frame
-> yank-pop
,这会给出错误“用户错误:上一个命令不是拉出”)。
我对 X-Windows 了解不多,不知道这是 emacs 的问题还是 x-windows 的问题。但这很烦人。我该怎么办?
[尝试了 Emacs 版本 24.5、25.1 和 26.0 以及 Ubuntu 16.10。
我最初在 emacs stack exchange 上发布了此内容,但除了建议在此处发布外,没有收到任何回复。]
答案1
此问题是由于 Unity 向 alt 键添加了信号。表面上的原因是为了让 Unity 可以隐藏菜单,然后使用 Alt 键重新显示它。因此,有两个步骤可以解决此问题:
在设置|外观|行为中,将“菜单可见性”更改为“始终显示”。
禁用 Unity 拦截密钥:
$ dconf write /org/compiz/profiles/unity/plugins/unityshell/show-menu-bar "'Disabled'"
[顺便说一句,我花了一些时间尝试正确解决这个问题,但我从未收到 Unity 团队的回复,而且我没有足够的时间。]