我目前正在将Eclipse RCP 3.1应用程序迁移到Eclipse 4.2,它到目前为止运行良好。因为应用程序很老,所以没有命令,旧的操作概念仍在使用中。自定义键盘快捷键可以正常工作,但有三个快捷键可以解决问题:保存,撤消和帮助。对于那些快捷方式,我不得不介绍命令的概念:
<extension point="org.eclipse.ui.bindings">
<key sequence="CTRL+S"
commandId="org.eclipse.ui.file.save"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
contextId="org.eclipse.ui.contexts.window"/>
<key sequence="CTRL+Z"
commandId="org.eclipse.ui.edit.undo"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
contextId="org.eclipse.ui.contexts.dialogAndWindow"/>
<key sequence="CTRL+H"
commandId="org.eclipse.ui.help.helpContents"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
contextId="org.eclipse.ui.contexts.window"/>
</extension>
现在这些快捷方式与日食自己的快捷方式相冲突。
!ENTRY org.eclipse.jface 2 0 2016-04-25 10:08:11.263
!MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
!SUBENTRY 1 org.eclipse.jface 2 0 2016-04-25 10:08:11.263
!MESSAGE A conflict occurred for CTRL+S:
Binding(CTRL+S,
ParameterizedCommand(Command(org.eclipse.ui.file.save,Save,
Save the current contents,
Category(org.eclipse.ui.category.file,File,null,true),
org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@7ef7f414,
,,true),null),
org.eclipse.ui.defaultAcceleratorConfiguration,
org.eclipse.ui.contexts.window,,,system)
Binding(CTRL+S,
ParameterizedCommand(Command(org.eclipse.ui.file.save,Save,
Save the current contents,
Category(org.eclipse.ui.category.file,File,null,true),
org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@7ef7f414,
,,true),null),
org.eclipse.ui.defaultAcceleratorConfiguration,
org.eclipse.ui.contexts.window,,,system)
...
更改Eclipse的键绑定,以便保存,撤消和帮助继续工作。第一次按 CTRL + H 时,将打开搜索对话框。推出它第二次,帮助终于打开了。 只有当用户首先通过菜单条目执行这些操作时,这三个快捷方式才有效。之后,快捷方式就可以了。
我不明白这种行为。有办法解决这个问题吗?