官术网_书友最值得收藏!

Time for action – binding commands to keys

Hooking up the command to a keystroke requires a KeyBinding. This allows a key (or series of keys) to be used to invoke the command instead of only via the menu. KeyBindings are set up inside a Binding Table and associated with a Binding Context.

  1. Open the fragment.e4xmi in the clock.ui project.
  2. In the imports, select the Binding Context from the dropdown and click on Add. In the Reference-ID, click on Find… and a dialog will be shown with the contexts. Choose the org.eclipse.ui.contexts.dialogAndWindow context:
  3. Once the binding context has been imported, it can be used within a binding table. Click on Model Fragments and select Add to create a new fragment. Fill in the details as follows:
    1. Extended Element ID: org.eclipse.e4.legacy.ide.application
    2. Feature Name: bindingTables
  4. In the BindingTable element, choose the org.eclipse.ui.contexts.dialogAndWindow context. This will ensure that the key binding is available in all windows and dialogs:
  5. Click on Add and a KeyBinding window will be shown. In the Sequence, enter M1+9. Next to the Command, click on Find... and choose the Hello command:
  6. Run the target Eclipse instance, and press Cmd + 9 (for macOS) or Ctrl + 9 (for Windows/Linux). The same Hello dialog should be displayed, as if it were shown from the menu. The same keystroke should be displayed in the Help menu.

What just happened?

The M1 key is the primary meta key, which is Cmd on macOS and Ctrl on Windows/Linux. This is typically used for the main operations; for example, M1+C is copy and M1+V is paste on all systems. The sequence notation M1+9 is used to indicate pressing both keys at the same time.

The command that gets invoked is referenced by its commandId. This may be defined in the same plug-in, but it does not have to be; it is possible for one application to provide a set of commands and another plug-in to provide keystrokes that bind them.

It is also possible to set up a sequence of key presses; for example, M1+9 8 7 would require pressing Cmd (or Ctrl) with 9 followed by 8 and then 7 before the command is executed. This allows a set of keystrokes to be used to invoke a command; for example, it's possible to emulate an Emacs quit operation with the KeyBinding Ctrl + X Ctrl + C to the quit command.

Other modifier keys include M2 (Shift), M3 (Alt or Option), and M4 (Ctrl on macOS). It is possible to use CTRL, SHIFT or ALT as long names but the meta names are preferred, since M1 tends to be bound to different keys on different operating systems.

The non-modifier keys themselves can either be single characters (A-Z), numbers (0-9), or one of a set of longer name key-codes such as F12, ARROW_UP, TAB, and PAGE_UP. Certain common variations are allowed, for example, ESC/ESCAPE and ENTER/RETURN.

主站蜘蛛池模板: 和硕县| 丹江口市| 桂林市| 莫力| 东莞市| 乐平市| 盐山县| 岳普湖县| 松潘县| 永州市| 宣城市| 五峰| 淮南市| 积石山| 荣成市| 和田县| 永丰县| 旺苍县| 保德县| 萍乡市| 孟州市| 曲水县| 敖汉旗| 酒泉市| 南京市| 昌都县| 澄江县| 安塞县| 宁陕县| 鲁甸县| 兴仁县| 海淀区| 凤山市| 噶尔县| 开阳县| 惠东县| 彩票| 麻阳| 奉贤区| 周至县| 郑州市|