You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code命令面板打开时禁用命令键绑定?

如何在命令面板打开时禁用VS Code命令键绑定?

我正在开发一个包含webview的VS Code扩展。当webview处于激活状态时,我设置了一些无需修饰键的单字母触发命令:

"keybindings": [
  {
    "command": "visual-scxml-editor.toggleEventDisplay",
    "key": "e",
    "when": "visual-scxml-editor.visualEditorActive"
  },
]

这种设置运行良好,但存在一个问题:当用户打开命令面板时,无法输入这些字符。我认为这是一个bug,但无法等待修复,也考虑到可能存在深层逻辑导致该行为不会被修改。

我没有找到能在命令面板打开时禁用该绑定的when子句上下文,想知道是否有事件、回调或其他技巧可以监听命令面板的开闭状态?

我想到的另一个临时解决方案是不再使用键绑定,而是在webview中自行处理键盘事件:

document.body.addEventListener('keydown', evt => {
  switch (evt.code) {
    case 'KeyE':
      this.toggleEventDisplay();
      evt.preventDefault();    
    break;
  }   
});

内容的提问来源于stack exchange,提问作者Phrogz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:04:53