使用 remote-ssh 在 VS Code 中设置全局环境变量

Set global environment variables in VS Code with remote-ssh

我有这样的情况,我需要使用安装在 Windows 10 上的 VS Code,并且 运行 它在 RHEL 7.x 上具有扩展名 Remote - SSH
默认的 RHEL 7.x 运行s 和 git 1.8.x。我已经安装了更新的 git 版本,但这不在默认的 $PATH 环境中。

我找到了这个说明https://code.visualstudio.com/docs/remote/wsl#_advanced-environment-setup-script,它描述了在使用 WSL 时如何专门为 VS Code 设置环境变量。

If you want to run additional commands or modify the environment this can be done in a setup script ~/.vscode-server/server-env-setup

这似乎只有在您使用 WSL 时才有效。为什么这不适用于 Remote - SSH extension?

我的特殊情况是在使用 VS Code 时我只需要 git>=2。当我通过 ssh 定期连接时,我想要并需要 OS 默认工具和设置。
这给了我一个特殊的要求,我不想编辑 ~/.bashrc~/.cshrc 或任何其他用户环境文件。
我希望能够仅为 VS Code 编辑环境。某种,也许像:

#!/bin/bash
export PATH=/opt/rh/rh-git29/root/usr/bin\:$PATH
export LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:$LD_LIBRARY_PATH
...
#!/bin/csh
setenv PATH /opt/rh/rh-git29/root/usr/bin\:$PATH
setenv LD_LIBRARY_PATH /opt/rh/httpd24/root/usr/lib64:$LD_LIBRARY_PATH
...

有什么我还没有找到可以提出工作请求的地方吗?或者这是对 VS Code 团队的某种请求吗?

此致。

我想我在this issue comment中找到了解决方案,后续回复:

  • 当 vscode-server 最初启动时,它使用登录名 shell,在您的主目录中获取 .profile
  • 但是,通过 VS Code 启动的任何后续交互式 shells 都是非登录 shells,因此只有来源 .bashrc
  • 解决这个问题的一个复杂因素是 vscode-server 显然会在其生命周期内缓存环境,因此这些点文件的更改在服务器重新启动之前不会变得可见。

我有更好的解决方案来最小化代理范围

export http_proxy=<proxy here>
export no_proxy=<no proxy here>
while IFS= read -r _file; do
    if ! grep -s -q "export http_proxy=" "${_file}"; then
        sed -i -e "/^ROOT/i export http_proxy=${http_proxy}" -e "/^ROOT/i export https_proxy=${http_proxy}" -e "/^ROOT/i export no_proxy=${no_proxy}" "${_file}"
    fi
done < <(find ~/.vscode-server/bin -type f -name "server.sh")