我想为每个 vscode 项目/工作区设置 $GOPATH。现在,在 .vscode/settings.json 中,我有:
{
"go.gopath": "$HOME/codes/huru"
}
我关闭 vscode 并重新打开,在命令行终端,我回显 $GOPATH,它是空的。我希望 vscode 能够从“go.gopath”读取环境变量,但似乎不必这样做。
有人知道该怎么做吗?
用户设置或工作空间设置上的
go.gopath
将替换 VSCode 上的 GOPATH 值。这个特定的 GOPATH 值是在 VSCode 上执行 Go: Current GOPATH
命令时显示的值,因此它不是 $GOPATH
环境变量。
来自 VS Code Go 扩展中的 GOPATH 的解释:
默认情况下,扩展使用环境变量 GOPATH 的值。如果没有设置这样的环境变量,扩展将运行 go env 并使用 go 命令报告的 GOPATH。
请注意,就像
变量一样,GOPATH 可以包含多个目录路径,由PATH
或:
分隔。这允许您为不同的项目设置不同的 GOPATH。;
在用户设置中设置
将覆盖环境的 GOPATH 值。go.gopath
工作区设置会覆盖用户设置,因此您可以使用 go.gopath 设置为不同的项目设置不同的 GOPATH。 GOPATH 还可以包含多个目录,因此不需要此设置来实现此行为。
下面是我编的一个示例,可能有助于理解这些差异。
$GOPATH
env 并设置了特定值。然后我在 用户设置上设置
go.gopath
(与 $GOPATH
相比具有不同的值)。当我执行命令 Go: Current GOPATH
时,右下角会出现一个弹出窗口,显示与我的 go.gopath
设置中完全相同的值。我在所有这些上画了红线。echo $GOPATH
时,输出仍然是我的环境变量 (蓝线)中的
$GOPATH
值。这是因为 go.gopath
设置不会替换 $GOPATH
环境变量。在您的情况下,
echo $GOPATH
返回空输出,因为您尚未设置$GOPATH
环境变量。