gpt4 book ai didi

vscode-extensions - VSCode : How to run a command after each terminal open?

转载 作者:行者123 更新时间:2023-12-02 15:28:15 31 4
gpt4 key购买 nike

在 Windows 上,我必须在打开的每个新终端 session 上运行命令 start-ssh-agent.cmd。我的开发环境是VSCode,每天都会打开十几个新终端。每次打开终端后,我都必须手动运行此命令。

是否有一种方法可以在每次打开终端时在终端上运行此命令?

enter image description here

这可能采用 VSCode 扩展、VSCode 配置(设置)或 Windows 环境配置的形式。

有什么想法吗?

最佳答案

在 Linux 系统上,您应该使用:

"terminal.integrated.shellArgs.linux"

在 Windows 和 OSX 上:

terminal.integrated.shellArgs.windows

terminal.integrated.shellArgs.osx

分别。

如果您想在每个工作空间的基础上应用 shellArgs 设置 - 您可以,尽管 documentation说:

The first time you open a workspace which defines any of these settings, VS Code will warn you and subsequently always ignore the values after that

至少 VSCode 1.42 版本会询问您以下内容:

"This workspace wants to set shellArgs, do you want to allow it?"

See issue 19758

<小时/>

在 Linux 上,如果您使用 bash(VSCode 中 shell 的默认设置),则有一些微妙之处:

  1. "terminal.integrated.shellArgs.linux": ["your_init_script.sh"]
    将执行脚本并立即关闭终端。为了防止这种情况,您必须使用 $SHELL 命令结束脚本。
    #!/bin/bash
    echo "init"
    export PATH=$PATH:/xxx/yyy/zzz # or do whatever you want
    $SHELL
    但这样你最终会进入一个子shell。有时这是 Not Acceptable (Read 1) (Read 2) .
  2. "terminal.integrated.shellArgs.linux": ["--init-file", "your_init_script.sh"]
    将使您留在初始 shell 中,但不会执行 .bashrc init 文件。因此,您可能需要在 your_init_script.shsource ~/.bashrc
    #!/bin/bash
    source ~/.bashrc
    echo "init"
    export PATH=$PATH:/xxx/yyy/zzz # or do whatever you want
  3. 如果您的存储库中已有 some_init_script.sh,并且由于某种原因不想将 source ~/.bashrc 添加到其中,您可以使用这:
    "terminal.integrated.shellArgs.linux": ["--init-file", "your_init_script.sh"]
    your_init_script.sh:
    #!/bin/bash
    source ~/.bashrc
    source some_init_script.sh
    some_init_script.sh:
    #!/bin/bash
    echo "init"
    export PATH=$PATH:/xxx/yyy/zzz # or do whatever you want
    <小时/>在 VSCode 之外,您无需创建额外的文件。像这样
    bash --init-file <(echo "source ~/.bashrc; source some_init_script.sh")
    但我无法将此字符串传递到 terminal.integrated.shellArgs.linux - 它需要以某种方式拆分为数组。我尝试过的所有组合都不起作用。
<小时/>

此外,您可以在特定文件夹中打开终端:

terminal.integrated.cwd

更改环境:

"terminal.integrated.env.linux"
"terminal.integrated.env.windows"
"terminal.integrated.env.osx"

甚至可以根据自己的喜好更改终端

terminal.integrated.shell.linux
terminal.integrated.shell.windows
terminal.integrated.shell.osx

或者

terminal.external.linuxExec
terminal.external.osxExec
terminal.external.windowsExec

关于vscode-extensions - VSCode : How to run a command after each terminal open?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45635168/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com