为 vscode 项目/终端设置 $GOPATH

问题描述 投票:0回答:1

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

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

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

有人知道该怎么做吗?

go visual-studio-code
1个回答
8
投票

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

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

默认情况下,扩展使用环境变量 GOPATH 的值。如果没有设置这样的环境变量,扩展将运行 go env 并使用 go 命令报告的 GOPATH。

请注意,就像

PATH
变量一样,GOPATH 可以包含多个目录路径,由
:
;
分隔。这允许您为不同的项目设置不同的 GOPATH。

在用户设置中设置

go.gopath
将覆盖环境的 GOPATH 值。

工作区设置会覆盖用户设置,因此您可以使用 go.gopath 设置为不同的项目设置不同的 GOPATH。 GOPATH 还可以包含多个目录,因此不需要此设置来实现此行为。

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

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


在您的情况下,

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

© www.soinside.com 2019 - 2024. All rights reserved.