自定义快捷键

编辑器内的快捷键由 “快捷键管理器” 统一管理。每一个快捷键可以绑定一个消息,当快捷键按下的时候,会触发绑定的消息。

定义快捷键

定义快捷键需要在 package.jsoncontributions.shortcuts 字段中进行,如下所示:

  1. // package.json
  2. {
  3. "name": "hello-world",
  4. "panels": {
  5. "default": {
  6. "main": "./panel.js"
  7. }
  8. },
  9. "contributions": {
  10. "messages": {
  11. "undo": {
  12. "title": "i18n:hello.messages.undo.title",
  13. "methods": ["say-undo"]
  14. }
  15. },
  16. "shortcuts": [
  17. {
  18. "message": "undo",
  19. "when": "panelName === 'hello-world'",
  20. "win": "ctrl+z",
  21. "mac": "cmd+z",
  22. }
  23. ]
  24. }
  25. }

本示例中,我们定义了一个 撤销 操作的快捷键,在 Windows 系统下是 CTRL + Z,在 macOS 系统下是 CMD + Z

当对应快捷键被按下时,会发送 undo 消息。

注意:此消息需要在 contributions.messages 里面先定义好,详请请参考文档 自定义消息

参数说明

下面我们来看看 contributions.shortcuts 各参数的具体说明。

message

类型 {string} 必填

快捷键绑定的消息,当这个快捷键被触发时,会发送此消息。快捷键按下的消息只能发送给当前扩展。

when

类型 {string} 可选

在某些条件下才会触发这个快捷键。

"when": "PanelName === 'hello-world'" 表示当获得焦点的面板名称为 hello-world 时,按下快捷键才会发送 message 消息。

win

类型 {string} 必填

在 Windows 平台上,监听的按键。

mac

类型 {string} 必填

在 macOS 上,监听的按键。