注意:我认为这不是 Eclipse Editor plug-in key binding not shown in menu for command 的重复项!
我有一个基于 Mars (4.5) 的 Eclipse RCP 应用程序,它不使用任何 e4 功能。我已经定义了自己的按键方案,以及 plugin.xml
中命令的一些按键绑定(bind)。它们工作正常,当我从 IDE 启动我的应用程序时,菜单条目会在菜单中的实际菜单旁边显示快捷方式文本(例如,CTRL + Q
)命令文本,例如
Quit CTRL+Q
但是,当我构建我的产品(包括 plugin_customizations.ini
)并运行它时,键绑定(bind)仍然有效,但实际的快捷方式文本未显示在不再有菜单了。
如何修复此问题以便文本再次显示在产品版本中?
编辑:这是在 Ubuntu 14.04 (Unity) 上。
从IDE启动,显示快捷方式文本:
从构建的产品开始,相同的系统:
最佳答案
这是 Ubuntu 中已知错误的问题(参见 related Eclipse bug report 、 discussion on ubuntuforums.org )。
要解决此问题,请通过设置 UBUNTU_MENUPROXY
来启动应用程序环境变量为0
。这会强制应用程序使用应用程序窗口内的菜单栏,而不是(诅咒!诅咒!诅咒!)Unity 全局菜单。
不幸的是,似乎还没有办法在启动时设置环境变量(通过启动器参数或 <application>.ini
),但是有两个错误( this one 和 this one )需要这样做,所以如果您也需要这个,投票给他们或者尝试实现这个......
同时,您可以在构建中包含自定义 shell 脚本,用户可以选择使用该脚本来启动应用程序。这个脚本非常简单:
#/bin/bash
UBUNTU_MENUPROXY=0 ./{your-application-launcher}
如果您有基于功能的产品,您还可以将此脚本包含在专为 Linux 构建的产品的构建中。为此,请将脚本添加到主要功能的根路径,并将以下行添加到功能的 build.properties
中。 .
root.linux.gtk.x86.permissions.755=launcher-unity.sh
root.linux.gtk.x86_64.permissions.755=launcher-unity.sh
root.linux.gtk.x86=file:launcher-unity.sh
root.linux.gtk.x86_64=file:launcher-unity.sh
关于Eclipse RCP : Key binding for commands work, 但菜单中未显示快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33848634/