vscode remote ssh如何搭配goenv切换golang版本
Word Count: 315(words)
Read Count: 1(minutes)
问题大概就是,当我在远程服务器使用goenv
安装了多个golang
版本的时候,使用vscode
的remote ssh
方式远程连接服务器,vscode
的shell
无法自动切换到对应的golang
版本。
发现vscode shell
里面的环境变量用的是老的,似乎没有加载~/.bash_profile
里面的环境变量。于是找到了remote-ssh
的这个issue。争论了挺久的,有兴趣可以看完。
解决方法是在settings.json
文件里面配置指定要使用login shell
:
1 2 3 4 5 6 7 8 9 10 11
| { "terminal.integrated.defaultProfile.linux": "bash", "terminal.integrated.profiles.linux": { "bash": { "path": "bash", "args": [ "-l" ] } } }
|
注意,这个配置只能够解决vscode shell
中golang
版本没切换的问题,但是vscode golang
插件此时用的golang
版本可能也是错误的。我们还需要给vscode golang
插件配置一下,例如:
1 2
| "go.goroot": "/root/.goenv/versions/1.17.8", "go.gopath": "/root/go/1.17.8"
|
所以,最终的配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "terminal.integrated.defaultProfile.linux": "bash", "terminal.integrated.profiles.linux": { "bash": { "path": "bash", "args": [ "-l" ] } }, "go.goroot": "/root/.goenv/versions/1.17.8", "go.gopath": "/root/go/1.17.8" }
|