的正常行为cd
是返回$HOME
。在 vscode 终端中,我想cd
转到工作区根目录。我不想使用热键或只是打开另一个终端。
仿佛:
~/path/to/workspace $ cd /tmp
/tmp $ cd foo
/tmp/foo $ cd
~/path/to/workspace $
相关:如何在 Visual Studio 代码中将终端更改为当前目录?(热键)[重复]已被关闭,因为我没有问1这个问题。
1 “如何快速更改 shell 文件夹以匹配当前打开的文件”。当前文件不是工作区文件夹。
答案1
在启动集成终端时设置环境变量并在 的别名中使用它cd
。
vscode settings.json
:
"terminal.integrated.env.linux": {"VSCODE_WS": "${workspaceFolder}"},
"terminal.integrated.env.windows":{"VSCODE_WS": "${workspaceFolder}"},
.bashrc
:
# Make `cd` from a vscode terminal go to the workspace root
# Assume the following is in vscode settings:
# "terminal.integrated.env.linux": {"VSCODE_WS": "${workspaceFolder}"},
# "terminal.integrated.env.windows":{"VSCODE_WS": "${workspaceFolder}"},
# When in filemode / not in a workspace, `VSCODE_WS` is set to the literal `${workspaceFolder}` so we check and ignore that
if [[ -v VSCODE_WS ]] && [[ "$VSCODE_WS" != '${workspaceFolder}' ]]; then
alias cd="HOME=\"${VSCODE_WS}\" cd"
fi
也适用于 gitbash。
我还没有测试过多个文件夹工作区窗口。