我试图使键盘快捷键仅在焦点当前位于文本编辑器中时才运行,特别是不在 VSCode 文件资源管理器侧边栏中。
我已经观察了keybindings.json中的所有示例,并试图遵循它们的模式。
默认键绑定中的默认绑定如下所示...
{ "key": "ctrl+n", "command": "workbench.action.files.newUntitledFile" },
我在用户键绑定中添加的键盘映射如下。
{ "key": "ctrl+n", "command": "workbench.action.files.newUntitledFile" , "when": "editorTextFocus && !filesExplorerFocus" }
但由于某种原因,这是行不通的。即使我在 VSCode 文件资源管理器菜单中有焦点,该命令仍在运行。
我在这里错过了什么?
编辑:
我尝试取消映射初始绑定,成功删除默认绑定。但是当我添加带有 when 子句的新绑定时,when 子句不起作用。
{ "key": "ctrl+n", "command": "workbench.action.files.newUntitledFile" , "when": "editorTextFocus && !filesExplorerFocus" },
{ "key": "ctrl+n", "command": "-workbench.action.files.newUntitledFile" },
如果您还禁用默认键绑定,它将按预期工作:
{
"key": "ctrl+n",
"command": "-workbench.action.files.newUntitledFile"
}
否则,当您有 fileExplorerFocus 时,此命令将在范围内并处于活动状态。