6

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

4

3 回答 3

11

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

打开远程设置命令

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

"terminal.integrated.shell.linux": "/usr/bin/fish"

在此处输入图像描述

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

于 2019-05-03T23:48:21.203 回答
5

添加到@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"
...

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

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

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

az-box1 配置

...
"terminal.integrated.defaultProfile.linux": "my-fav-term"
...

az-box1将默认为fish

于 2021-07-08T08:17:48.583 回答
0

以上答案都没有为我工作,我一直试图让默认 shell 成为 zsh 好几个月了。最终起作用的是将以下内容添加到我的顶部.bashrc

if [[ "$TERM_PROGRAM" == "vscode" ]]; then
  # ~/.profile is run by the login shell (this is what ssh uses)
  # ~/.bashrc is run by the interactive shell (this is what vscode uses)
  # Therefore, we only need to change the shell to zsh here since
  # vscode will run ~/.bashrc for us.
  exec zsh -l
fi
于 2022-02-17T18:11:53.073 回答