when上下文子句可控制快捷键生效条件,如{ "key": "ctrl+d", "command": "deleteLine", "when": "textInputFocus"}仅在文本输入时删除行;通过区分textInputFocus、terminalFocus等场景,能实现不同状态下同一按键触发不同命令,避免冲突;结合sideBarFocus、findInputFocussed等条件可精准控制快捷键行为,提升编辑效率。

在 VS Code 中,快捷键的 when 上下文子句是一个强大但常被忽视的功能。它允许你根据编辑器当前的状态来控制某个快捷键是否生效。通过合理使用 when 条件,你可以让同一个按键组合在不同场景下触发不同操作,避免冲突,提升效率。
在 keybindings.json 中定义快捷键时,每个绑定可以包含一个 when 字段。这个字段指定一个条件表达式,只有当该条件为真时,快捷键才会被触发。
例如:
{
"key": "ctrl+d",
"command": "deleteLine",
"when": "textInputFocus"
}
这条规则表示:只有当文本输入获得焦点时,Ctrl+D 才会删除整行。
掌握一些常用的上下文条件,能让你更精准地控制快捷键行为。
假设你想用 Ctrl+Enter 在编辑器中插入新行,但在终端中也希望用 Ctrl+Enter 发送命令。这时可以通过 when 区分场景:
[
{
"key": "ctrl+enter",
"command": "editor.action.insertLineAfter",
"when": "textInputFocus && !terminalFocus"
},
{
"key": "ctrl+enter",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\n" },
"when": "terminalFocus"
}
]
这样设置后,VS Code 会根据当前焦点自动选择正确的操作,不会互相干扰。
你还可以结合扩展或设置自定义上下文变量,实现更复杂的逻辑。比如某些插件会在特定模式下设置标志位,你的快捷键可以根据这些标志动态响应。
查看官方文档中的 When Clause Contexts 列表,能发现更多可用条件。
基本上就这些。善用 when 子句,能让你的快捷键配置更智能、更贴合实际工作流。不复杂但容易忽略。
以上就是VS Code快捷键when上下文子句的妙用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号