如何为 VS Code SSH 远程配置不同的 shell?

Mat*_*ner 4 ssh visual-studio-code vscode-remote

当我连接到远程 ssh 工作区时,如何更改用于 VS Code 的集成终端的 shell ?

Suk*_*ann 19

添加@Matt Bierner 的答案。

现在的较新版本vscode允许您为终端设置配置文件并为它们提供您的自定义名称,并且该名称应该在您的远程设置中引用。

CTRL+ SHIFT+ P->Preferences: Open Settings (JSON)

用户配置

...
"terminal.integrated.profiles.linux": {
    "s-mann-term": {
        "path": "/usr/bin/zsh"
    },
    "bash": {
        "path": "bash"
    },
    "zsh": {
        "path": "zsh"
    },
    "my-fav-term": {
        "path": "fish"
    }
},
"terminal.integrated.defaultProfile.linux": "s-mann-term"
...
Run Code Online (Sandbox Code Playgroud)

这将使所有主机默认为/usr/bin/zsh(我刚刚path在我的个人资料中使用了密钥,但还有许多其他选项可以修改)

注意:您也可以为同一个 shell 添加多个配置文件。例如,5 个不同配置的配置zsh文件。

CTRL+ SHIFT+ P->Preferences: Open Remote Settings (SSH: az-box1)

az-box1 配置

...
"terminal.integrated.defaultProfile.linux": "my-fav-term"
...
Run Code Online (Sandbox Code Playgroud)

az-box1将默认为fish

  • 对于较新版本的 vscode,这个答案是正确的答案!谢谢 (2认同)

Mat*_*ner 9

您可以使用远程设置来更改每个主机的外壳。为此,请在 VS Code 中打开远程工作区并运行以下Open Remote settings命令:

打开远程设置命令

设置terminal.integrated.shell.linux为指向您的 shell 并保存文件:

"terminal.integrated.shell.linux": "/usr/bin/fish"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

远程设置适用于您在给定主机上打开的所有工作区,但必须为您连接的每个主机配置。

  • 现在已弃用。新功能设置使用“terminal.integrated.profiles.linux” (4认同)