如何修改VS Code的keybindings.json,使快捷键在当前终端执行命令?
在VS Code当前终端中用快捷键运行命令的配置方法
嘿,这事儿其实很简单,核心就是用VS Code内置的workbench.action.terminal.sendSequence命令,它能直接把指定命令发送到当前活动的终端窗口里执行。我给你一步步拆解怎么配置:
第一步:打开keybindings.json配置文件
你可以通过两种方式快速打开:
- 按下快捷键
Ctrl+K Ctrl+S打开快捷键面板,然后点击面板右上角的{}图标("打开键盘快捷方式(JSON)"); - 或者通过菜单:
文件 > 首选项 > 键盘快捷方式,再点右上角的{}。
第二步:添加自定义快捷键配置
在打开的keybindings.json里,你可以添加类似下面的配置项,根据自己的需求修改键位和要执行的命令:
基础示例:全局快捷键运行固定命令
比如设置Ctrl+Shift+N在当前终端启动npm开发服务器:
[ { "key": "ctrl+shift+n", "command": "workbench.action.terminal.sendSequence", "args": { // 这里写你要执行的命令,末尾加\n模拟回车执行 "text": "npm run dev\n" } } ]
进阶示例:针对特定文件类型运行当前文件
如果想在编辑Python文件时,按下F6直接在当前终端运行打开的脚本:
[ { "key": "f6", "command": "workbench.action.terminal.sendSequence", "args": { // ${file}是VS Code内置变量,代表当前打开的文件路径 "text": "python ${file}\n" }, // 只在Python文件编辑窗口生效,避免误触 "when": "editorLangId == 'python'" } ]
关键细节说明
\n必须加:它相当于你在终端里按下回车键,没有它的话命令只会输入到终端,不会执行;- 内置变量:除了
${file},你还可以用${fileBasenameNoExtension}(不带后缀的文件名)、${workspaceFolder}(当前工作区根目录)等,让命令更灵活; when条件:这个字段用来限制快捷键的生效场景,比如terminalFocus表示只有终端窗口聚焦时才触发,editorTextFocus表示只有编辑区聚焦时触发,按需添加即可;- 自动新建终端:如果当前没有打开任何终端,这个命令会自动帮你新建一个终端再执行命令。
最后验证配置
保存keybindings.json后,打开终端(或者直接触发快捷键),就能看到命令自动在当前终端执行啦!你可以根据自己的开发场景,复制修改上面的示例,适配不同的语言或命令。
内容的提问来源于stack exchange,提问作者user998163
相关产品推荐
相关产品推荐

