首页 > 解决方案 > 为 vscode 项目/终端设置 $GOPATH

问题描述

我想为每个 vscode 项目/工作区设置 $GOPATH。现在,在 .vscode/settings.json 中,我有:

{
    "go.gopath": "$HOME/codes/huru"
}

我关闭 vscode 并重新打开,在命令行终端,我回显 $GOPATH,它是空的。我希望 vscode 会从“go.gopath”读取环境变量,但似乎不必这样做。

有谁知道如何做到这一点?

在此处输入图像描述

在此处输入图像描述

标签: govisual-studio-codevscode-settings

解决方案


用户设置工作区设置将替换 VSCodego.gopath上的 GOPATH 值。这个特定的 GOPATH 值是在 VSCode 上执行命令时显示的值,因此它不是environment variableGo: Current GOPATH$GOPATH

go.gopath不会替换$GOPATH环境变量

来自VS Code Go 扩展中的 GOPATH 的解释:

开箱即用,扩展使用环境变量的值GOPATH。从 Go 1.8 开始,如果没有设置这样的环境变量,则使用GOPATH从命令 go env 破译的默认值。

用户设置go.gopath中的设置会覆盖GOPATH从上述逻辑派生的设置。工作区设置go.gopath中的设置会覆盖用户设置中的设置。您可以在此设置中将多个文件夹设置为 GOPATH。请注意,它们应该;在 Windows中:分开,否则分开。

下面是我编造的一个例子,它可能有助于理解这些差异。

  • 例如,我已经$GOPATH在我的本地环境中设置了一个特定的值。然后我设置go.gopath用户设置(与 相比具有不同的值$GOPATH)。当我执行命令Go: Current GOPATH时,右下角会出现一个弹出窗口,显示与我的go.gopath设置完全相同的值。我把这一切都划上了红线
  • 但是,每当我echo $GOPATH在终端上执行 shell 命令时,输出仍然是$GOPATH我的 env 变量(蓝线)的值。这是因为go.gopath设置不会替换环境$GOPATH变量。

在此处输入图像描述


在您的情况下,echo $GOPATH返回空输出,因为您尚未设置$GOPATH环境变量。


推荐阅读