【问题标题】:How to open non integrated terminal window from vscode extension?如何从 vscode 扩展打开非集成终端窗口?
【发布时间】:2021-04-30 13:50:59
【问题描述】:

我正在为 Visual Studio Code 开发一个扩展。我需要打开一个终端窗口并在那里运行一些命令(一个接一个完成)。与 Terminal.sendText 相同,但不在集成终端中。有没有办法做到这一点?

更新

我最接近的是使用:

const childProcess = spawn('node', ['--version'],{
    shell: true,
    detached: true,
    windowsHide: false
});

问题是它会自动关闭

【问题讨论】:

  • 如果你不想内联运行多个命令,你可以使用&符号,比如echo yes & echo no,如果你不想下一个只有在第一个成功的情况下运行你可以使用&&

标签: javascript node.js typescript visual-studio-code terminal


【解决方案1】:

您可以运行机器的终端应用程序并指定要运行的命令,例如使用mate-terminal-e 选项。然后,您可以使用某些启动命令运行 bash How to invoke bash, run commands inside the new shell, and then give control back to user?

【讨论】:

  • 一个例子可能是mate-terminal -e "bash -c \"bash --rcfile <(echo '. ~/.bashrc; ping google.com')\"",它很粗略,但我想你明白我的意思。这很难,因为那里有很多带有不同标志的终端程序
  • 嗯,对不起,我无法清楚地理解这一点。在集成终端中运行此命令?并且 vscode 扩展可以在所有操作系统中使用,解决方案是什么?
  • 哪一部分你不明白?您将需要执行此命令,我也不太确定在终端中运行特定命令的跨平台命令,您只需要手动添加对所有平台的支持。我知道 x-terminal-emulator 用于运行默认终端应用程序的 debain 并且也采用 -e 标志。
  • 其实我预计如果 vscode 扩展 api 提供一些功能来简化任务。我已经更新了问题。
  • 我不这么认为,这是一件很随机的事情。但是我之前没有使用过 vscode 扩展 api 所以我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多