【问题标题】:How to run a script or command every time a terminal (zsh) opens in a VSCode workspace?每次在 VSCode 工作区中打开终端(zsh)时如何运行脚本或命令?
【发布时间】:2021-12-30 21:26:58
【问题描述】:

我正在 macOS 上开发一个 Django 项目。我的终端运行 zsh。

我想创建有用的别名,例如 run 而不是 python manage.py runserver,但是,我不想每次打开新终端时都运行这些命令。

这就是发生的事情:

  • 我不想在我的主目录的.zshrc.zprofile 中创建这些别名或运行任何命令,因为我不希望它们在系统范围内。 我想只在本地项目目录上运行它们。

  • 每次我们在 VSCode 上打开一个新终端时,在使用选定的 Python 虚拟环境时,首先会运行一个激活它的命令。它看起来像这样:

      source /Users/.../venv/bin/activate
    

    这(应该)由微软的 Python 扩展执行。我克隆了它的存储库,但没有找到 他们将其放置在 VSCode 配置中的位置。他们在哪里?

  • StackOverflow 上的一些帖子告诉我查看terminal.integrated.profiles.osx 设置。我做到了,而我最接近的事情就是创建此个人资料:

      "zsh (Django)": {
          "path": "zsh",
          "args": [
              "-c", "source setup.sh"
          ]
      }
    

    setup.sh 是我工作目录中的一个文件。目前它唯一的命令是echo "Hello World"

    我还尝试在 args 中仅包含 "setup.sh"

    总是有相同的结果:终端打开,来源venv/bin/activate,打印“Hello World”并立即退出。 (为什么?!)这是发生了什么的 GIF:https://imgur.com/urm0zWW

总而言之:我想在终端打开后运行命令,就像 source 自动运行一样,我不知道如何实现。

【问题讨论】:

  • 也许值得这样思考:您真的希望它在从 VSCode 中打开的终端中,还是从 每个 交互式 zsh shell 中打开正在创造?在后一种情况下,我不太关心 VSCode 在做什么,只需将所需的设置代码放入您的 .zshrc

标签: python django visual-studio-code terminal zsh


【解决方案1】:

vscode 设置环境变量。因此,如果您从.zshrc 或类似中检查这些变量之一,您可以以非系统范围的方式进行更改。例如:

    if [[ $TERM_PROGRAM = vscode ]]; then
      source /Users/.../venv/bin/activate
      …
    fi

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2021-10-24
    • 2017-09-29
    • 2021-12-17
    相关资源
    最近更新 更多