是否可以将 keybindings.json 作为工作区设置的一部分而不是用户设置?
由于我有与我的工作区相关联的特定任务,我还希望能够分配特定于工作区的快捷方式。因为我会在单独的 Windows 和 Linux 环境中使用这些快捷方式,所以我不希望看到这些键绑定定义最终出现在我的环境特定用户设置中。
是否可以将 keybindings.json 作为工作区设置的一部分而不是用户设置?
由于我有与我的工作区相关联的特定任务,我还希望能够分配特定于工作区的快捷方式。因为我会在单独的 Windows 和 Linux 环境中使用这些快捷方式,所以我不希望看到这些键绑定定义最终出现在我的环境特定用户设置中。
这是不可能的。在这里,Alexandru Dima (alexandrudima) 解释了为什么他们不想添加此功能,并进一步建议创建您的自定义扩展,该扩展仅提供键绑定来共享它们。
这不是一个完美的解决方案,但我找到了一种解决方法来创建可以在工作区级别激活的键绑定。
在工作区.vscode/settings.json
文件中,将新设置设置为 true。(因为该设置没有被vscode或者任何扩展注册,所以会在编辑器中淡出显示——这样就OK了):
"workspaceKeybindings.myAwesomeTask.enabled": true // setting can be anything you want
然后在 user 中创建键盘快捷键keybindings.json
,并为您创建的设置添加“何时”条件:
{
"key": "ctrl+; ctrl+n",
"command": "workbench.action.tasks.runTask",
"args": "My Awesome Task",
"when": "config.workspaceKeybindings.myAwesomeTask.enabled" // Must be "config.{settingName}"
},
可以在您想要的任何工作区中将此键绑定设置为活动状态。