通过 when 子句可实现 VS Code 快捷键的情境化控制,1. 利用 editorTextFocus、editorLangId 等条件限定触发环境,2. 结合逻辑运算符组合条件,3. 在 keybindings.json 中配置差异化行为,4. 使用 Developer: Inspect Context Keys 调试上下文状态,使快捷键按场景智能生效。

在 VS Code 中,快捷键的自定义不仅限于简单的键位映射,通过 when 子句 可以实现高度情境化的快捷键控制。它允许你根据编辑器当前的状态决定某个快捷键是否生效,从而避免冲突、提升效率。
when 子句是 VS Code 键盘快捷方式中的条件表达式。只有当指定条件为真时,绑定的快捷键才会触发。这让你可以在不同上下文中复用相同的按键组合,而不会产生干扰。
例如,你想让 Ctrl+Enter 在普通编辑时插入新行,但在调试控制台中发送代码,就可以通过不同的 when 条件来区分行为。
VS Code 提供了大量内置的上下文变量(context),用于构建 when 表达式。以下是一些高频使用的条件:
这些条件可以组合使用,支持逻辑运算符:
打开 keybindings.json(通过命令面板执行 “Preferences: Open Keyboard Shortcuts (JSON)”)进行高级编辑。以下是几个典型场景:
1. 仅在 Python 文件中启用特定快捷键
[
{
"key": "ctrl+shift+r",
"command": "python.refactor.extractVariable",
"when": "editorTextFocus && editorLangId == 'python'"
}
]2. 区分普通编辑与调试控制台中的回车行为
[
{
"key": "ctrl+enter",
"command": "extension.sendToTerminal",
"when": "inDebugRepl"
},
{
"key": "ctrl+enter",
"command": "editor.action.insertLineAfter",
"when": "editorTextFocus && !inDebugRepl"
}
]3. 有选中内容时才触发格式化
[
{
"key": "cmd+k cmd+f",
"command": "editor.action.formatSelection",
"when": "editorHasSelection && editorTextFocus"
}
]调试 when 条件时,可通过命令面板运行 Developer: Inspect Context Keys。启动后,鼠标移动或操作界面时会实时显示所有当前为真的 context 值,极大方便规则编写。
基本上就这些。掌握 when 子句后,你可以让快捷键真正“智能”起来,贴合你的工作流细节,而不是生硬地全局生效。
以上就是VS Code快捷键绑定高级技巧:when子句的使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号