在 VSCode 中启用“以登录 Shell 运行命令”

4

我正在使用在Ubuntu 20.04 LTS上运行的vscode。我已经设置了我的Ubuntu终端首选项运行登录Shell(bash)。 现在,我打开vs code,它也会打开集成的bash终端。 我想知道是否在vscode上也启用了运行登录Shell的命令?

2个回答

14

今天我也在寻找相同的东西。我按照这里的文档进行了操作:https://code.visualstudio.com/docs/editor/integrated-terminal#_configuring-profiles

我在settings.json文件中添加了一个"terminal.integrated.profiles.linux"条目,然后它自动添加了每个可用终端类型的条目。我编辑了bash的条目以添加"args": ["--login"],然后打开了一个新的终端标签,新的终端工作正常了。

以下是被添加到settings.json中的完整条目:

"terminal.integrated.profiles.linux": {
      "bash": {
        "path": "bash",
        "icon": "terminal-bash",
        "args": ["--login"]
      },
      "zsh": {
        "path": "zsh"
      },
      "fish": {
        "path": "fish"
      },
      "tmux": {
        "path": "tmux",
        "icon": "terminal-tmux"
      },
      "pwsh": {
        "path": "pwsh",
        "icon": "terminal-powershell"
      }
    }

您可以运行shopt login_shell来验证终端是否正在作为登录 shell 运行。如果是,则会打印login_shell on


这也适用于zprofile,按照文档中提到的将["-1"]设置为选项并没有起作用,但是使用["--login"]可以在zsh上运行。 - Joseph Ng
shopt 是一个 Linux 命令还是 VSCode 命令?我找不到它,但据说如果 echo $0 的结果以 - 开头,则根据 LinuxHandbook 所述,您正处于登录 shell 中。 - Micah J
我尝试了这个答案中的bash部分,集成终端如预期地变成了登录shell。然而,集成终端不再提供code命令了。这是预期的吗?除了将$HOME/.vscode-server/bin/xxxxxxx/bin/remote-cli导出到$PATH之外,是否有其他优雅的方法来解决这个问题? - undefined

2

在使用Pop!_OS 22.04和VS Code 1.70时,将以下内容添加到我的用户settings.json中即可:

{
    "terminal.integrated.profiles.linux": {
      "zsh (login)": {
        "path": "zsh",
        "args": ["-l"]
      }
    },
    "terminal.integrated.defaultProfile.linux": "zsh (login)"
}

这将添加一个新的配置文件并将其设置为默认配置文件,而不是尝试覆盖内置配置文件。 https://code.visualstudio.com/docs/terminal/profiles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接