为 VSCode 项目/终端设置 $GOPATH

7

我希望为每个vscode项目/工作区设置$GOPATH。现在,在.vscode/settings.json中,我有以下内容:

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

我关闭了vscode并重新打开,在命令行终端中,我回显$GOPATH,结果为空。我希望vscode可以读取"go.gopath"中的环境变量,但似乎没有这样做。
有人知道如何做吗?

enter image description here

enter image description here


为什么你想要那个?$GOPATH默认为$HOME/gogo env GOPATH可以显示它。如果你想让$GOPATH在shell中可见,那么请在你的用户配置文件或shell配置文件中设置它。 - nilsocket
1个回答

7

go.gopath用户设置工作区设置中将替换VSCode上的GOPATH值。这个特定的GOPATH值是每当在VSCode上执行Go: Current GOPATH命令时出现的值,因此它不是$GOPATH环境变量。

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

VS Code Go扩展中的GOPATH解释

默认情况下,该扩展使用环境变量GOPATH的值。从Go 1.8开始,如果没有设置这样的环境变量,则使用从命令go env解密出的默认GOPATH。在用户设置中设置go.gopath会覆盖从上述逻辑推导出的GOPATH。在工作区设置中设置go.gopath将覆盖用户设置中的设置。您可以在此设置中将多个文件夹设置为GOPATH。请注意,在Windows中它们应该是;分隔,在其他情况下应该是:分隔。下面是我编写的一个示例,可能有助于理解差异。
例如,我已经在本地设置了$GOPATH环境变量,并赋予了一个特定的值。然后我在用户设置中设置了go.gopath(与$GOPATH不同的值)。当我执行命令Go: Current GOPATH时,在右下角会弹出一个窗口,显示与我的go.gopath设置相同的值。我在所有这些内容上都加了红线
但是,每当我在终端上执行shell命令echo $GOPATH时,输出仍然是来自我的env变量$GOPATH的值(蓝线)。这是因为go.gopath设置不会替换$GOPATH env变量。

enter image description here


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接