【问题标题】:How to add a keybinding containing a "+" sign to extension?如何将包含“+”号的键绑定添加到扩展?
【发布时间】:2021-10-09 10:30:04
【问题描述】:

我正在尝试将包含“+”的键绑定(例如“shift”+“+”)添加到 Linux 上的扩展命令中。显然,当手动将这样的键绑定添加到命令时,会导致以下 json 结构(检查 keybindings.json):

{
  "key": "shift+[BracketRight]",
  "command": "vscode-command"
}

使用“shift”+“+”执行此键绑定有效。

在扩展的 package.json 键绑定部分声明这个确切的键并在之后运行它时,这个绑定没有任何效果,命令仍然没有绑定到任何键绑定。

“shift”+“-”和“shift”+“0”等其他键绑定可以直接使用。

我还看到“Ctrl”+“]”作为命令的键绑定(可能使用其他键盘布局),但将“]”替换为“[BracketRight]”也没有效果。

在我的 Windows 安装中,命令的键似乎是“shift”+“oem_plus”,但在 Linux 上无法正确识别。

我也尝试使用其他包含“+”的组合键,但它们都没有导致以“扩展”作为源的键绑定。

有谁知道如何可靠地将包含“+”的键绑定绑定到所有平台(Windows、Linux、Mac)上的扩展命令?

【问题讨论】:

  • 只是一个快速的想法:您是否尝试过使用反斜杠转义`+`?`
  • 感谢您的建议。不幸的是,键绑定声明中不允许使用“\”。

标签: visual-studio-code vscode-extensions


【解决方案1】:

我的键盘上有 2 个+

  • Shift+=(在0附近)
  • 加号小键盘

来自文档:Accepted keys

我们必须在键绑定定义中使用=numpad_add

以下键绑定适用于 Windows。

        "keybindings": [
          {
            "command": "myext.regularplus",
            "key": "ctrl+shift+alt+=",
            "when": "editorTextFocus"
          },
          {
            "command": "myext.numpadplus",
            "key": "ctrl+shift+alt+numpad_add",
            "when": "editorTextFocus"
          }
        ]

【讨论】:

  • 谢谢!不幸的是,例如德语键盘布局(en.wikipedia.org/wiki/German_keyboard_layout#/media/…)“+”键与“=”不在同一位置。我慢慢得出的结论是(除了带有虚拟键系统(docs.microsoft.com/en-us/windows/win32/inputdev/…)的 Windows 之外)要可靠地映射字符(如“+”键盘布局)与每个平台上的键绑定无关(小键盘除外)是不容易的-作业)
  • @e01306821 如果您使用键绑定调试按+ 时显示的键,您总是可以创建一个错误问题,因为他们使用低级键盘代码进行键绑定,它是缺少某些特定语言的翻译,ZY 键也有同样的问题,扫描码方法也不起作用,某些键盘上的 [BracketRight] 可能会映射到反引号或其他东西
  • 如果您使用键绑定 GUI,当您在记录键模式 (Alt+K) 下按 + 键时会显示什么键
  • 它显示了[BracketRight],这似乎是美国键盘布局中的键,与德语键盘布局的+ 键位置相同。我认为将[BracketRight] 映射为所需的键绑定(必须涉及+)不会产生所需的结果。我现在创建了一个问题:github.com/microsoft/vscode/issues/130396 感谢您的支持
  • @e01306821 结果是任何使用美式键盘的人都无法使用您的键绑定,因为他们无法键入shift++,因为+shift+= ,我认为你必须退回到组合键ctrl+k ctrl+p,键盘 GUI 似乎可以识别组合键 ctrl+k =
猜你喜欢
  • 2018-03-18
  • 2014-11-27
  • 2020-11-11
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多