我试图将MSYS2
shell集成到Visual Studio Code集成终端中.这是我的用户设置:
{ "terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe","terminal.integrated.shellArgs.windows": ["--login","-i"] }
但是,我遇到了一个问题,其中–login将当前工作目录更改为Windows主目录.我希望当前目录位于我的工作区的根目录.
我的进一步尝试是尝试添加标志-c’cd ${workspaceRoot}’.然而,bash会在开始时崩溃.我可以通过删除–login来正确访问当前目录,但是没有登录模式,所有其他shell命令(ls,cd等)都不可用.
如何将MSYS2 shell正确集成到我的vscode中?
原始但不工作100%(接受为答案)
原文链接:/bash/384843.html这将正确启动MSYS2 bash shell,以便执行.bash_login:
"terminal.integrated.shell.windows": "C:\\msys64\\msys2_shell.cmd","terminal.integrated.shellArgs.windows": ["-defterm","-mingw64","-no-start","-here"]
编辑
原来的答案似乎在当时有用,但是当我尝试在VSCode中开始使用任务时,它显然无法正常工作.尝试运行一个简单调用make all的任务会导致以下错误:
/usr/bin/bash: /d: No such file or directory
The terminal process terminated with exit code: 127
从其他答案,使用“terminal.integrated.shellArgs.windows”:[“ – login”,“ – i”]得到了几乎正确的环境(MSYS而不是MINGW64)但是在错误的目录中启动,并且“终端” .integrated.shellArgs.windows“:[” – “”,“cd $OLDPWD; exec bash”]使用正确的环境在正确的目录中启动但无法运行任务.
我想出了迄今为止似乎工作正常的解决方案.
在VSCode设置中:
"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe","terminal.integrated.env.windows": { "MSYSTEM": "MINGW64",//"MSYS2_PATH_TYPE": "inherit","MSVSCODE": "1" },
在.bashrc中:
if [ ! -z "$MSVSCODE" ]; then unset MSVSCODE source /etc/profile cd $OLDPWD fi