vscode shell设置 升级到1.56版后终端配置不支持"terminal.integrated.shell.windows"后的解决办法
我用 vs code 开发ESP8266固件,一直用make flash用的好好的,今天打开发现命令不能执行了,想起昨天升级过vscode,就查了下setting.json,发现有如下提示:
终端在 Windows 上使用的 shell 的路径(默认: C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe)。详细了解如何配置 shell。 This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in `#terminal.integrated.profiles.osx#`
and setting its profile name as the default in `#terminal.integrated.defaultProfile.osx#`. This will currently take priority over the new profiles
settings but that will change in the future.(2)
意思是原来的terminal.integrated.shell.windows配置方式已经不再支持, 要修改文件路径: .vscode\settings.json
"terminal.integrated.shell.windows": "xx/ESP/msys32/msys2_shell.cmd", //不支持的配置 "terminal.integrated.shellArgs.windows": [ "-defterm", "-mingw32", "-no-start", "-here" ], "terminal.integrated.env.windows": { "CHERE_INVOKING": "1", "MSYSTEM": "MINGW32" }
解决方法:
经过搜索后,配置修改为如下配置:
"terminal.integrated.profiles.windows": { //新的配置 "MINGW32": { "path": "xx/ESP/msys32/msys2_shell.cmd", //shell路径 "icon": "terminal-cmd", "args": [ "-defterm", "-mingw32", "-no-start", "-here"], "env": { "CHERE_INVOKING": "1", "MSYSTEM": "MINGW32" } } },
然后重新打开vs code,我去,竟然还是默认的power shell, 这是咋回事呢?
vs code中首选项中,搜索@feature:terminal,看到用户配置下面的 Allow workspace configuration没有打勾,于是勾上,重新打开vs code, 熟悉的界面又回来了。
make命令又可以正常使用了。
补充:
VScode升级到1.57.1后又提示要转换新的环境,点迁移后正常,没有发现问题。以下为项目级(路径:项目文件夹下的.vscode/settings.json中)配置:
"terminal.integrated.defaultProfile.windows": "Command Prompt" //设置本工作区的默认终端,用于覆盖系统的默认设置,这样打开工作区,就默认打开了需要的终端
用户级settings.json,可以通过打开菜单:文件>首选项>设置,然后搜索terminal, 点击 在settings.json中编辑即可看到所有现有终端的配置
以下为配置实例放在在项目文件夹下.vscode\settings.json中,仅影响当前项目:
"terminal.integrated.profiles.windows": { //新的配置 "ESP32C3": { "path": "${env:windir}/System32/cmd.exe", //shell路径 "icon": "terminal-cmd", "args": [ "/k", "xx/.espressif/idf_cmd_init.bat", "esp-idf-402269c78bff9d18", "-noexit", "-here"], "overrideName": true, //是否用Profile的名字来替代默认检测到的名字,这里是ESP32C3替代cmd } }, "terminal.integrated.defaultProfile.windows": "ESP32C3" //默认的终端配置
参考:
https://code.visualstudio.com/docs/editor/integrated-terminal