将终端选项卡保存到已保存的工作区VSCode

时间:2018-07-12 18:14:56

标签: terminal visual-studio-code vscode-settings

是否可以将终端设置保存到工作区?对于我的大多数项目,我总是打开两个终端选项卡。一处完成所有git工作,一处执行gulp任务。这是两个不同的文件夹,都不是项目根目录。当我打开一个保存的工作区时,它总是只打开一个标签到项目根目录。

3 个答案:

答案 0 :(得分:1)

任务功能是当前推荐的处理此问题的方法。请参阅 VS Code 文档中的 Automating launching of terminals

答案 1 :(得分:1)

对于非官方推​​荐的 Linux 工作方式。可以使用适用于 linux 的 xdotool 密钥模拟器。我相信任何 Windows 密钥模拟器都可以用来完成同样的事情。

首先,将 Terminal: Change Color 设置为键盘快捷键。这里我使用 Ctrl+Shift+C。这是通过调出命令托盘 (Cntrl+Shift+P) 并键入 Terminal: Change Color

enter image description here

这是我从 VS Code 设置中恢复的终端 json。需要在最后一个选项卡上激活用于更新颜色的冗长 cli 命令,因为它是在“还原选项卡”完成还原选项卡时聚焦的选项卡。 我们需要在每个选项卡颜色的设置之间有一点超时,因为 VS Code 只需大约 10 秒即可完成命令。内置的键盘快捷键 cntrl+Page_Up 用于使之前的选项卡成为焦点。此脚本适用于包含 Docker-Compose 环境的 WorkSpace,该环境包含 3 个存储库。 请务必将其保存在您的工作区设置中,而不是您的用户设置中。如需更多信息,请访问:https://code.visualstudio.com/docs/getstarted/settings

      "restoreTerminals.terminals": [
    {
      "splitTerminals": [
        {
          "name": "docker-compose",
          "commands": ["cd ..", "cd docker-compose", "clear"]
        },
      ]
    },
    {
      "splitTerminals": [
        {
          "name": "api",
          "commands": ["cd ..", "cd api", "clear"]
        },
      ]
    },
    {
      "splitTerminals": [
        {
          "name": "ui",
          "commands": [
                "cd ..",
                "cd ui",
                "xdotool key ctrl+shift+c && xdotool type 'cyan' && xdotool key Return && sleep .2",
                "xdotool key ctrl+Page_Up && xdotool key ctrl+shift+c && xdotool type 'green' && xdotool key Return && sleep .2",
                "xdotool key ctrl+Page_Up && xdotool key ctrl+shift+c && xdotool type 'yellow' && xdotool key Return",
                "clear"
            ]
        },
      ]
    }
  ],

而最终的结果...是所有选项卡颜色在恢复后都会更新。 当然,任何使用过键盘模拟来自动执行任务的人都应该知道,在任务完成之前,您不能输入文本或点击其他地方。

enter image description here

答案 2 :(得分:0)

查看Restore Terminals扩展名。例如,在您的settings.json中:

 "restoreTerminals.runOnStartup": false,   // true is the default
          // set to false if using a keybinding or command palette

  "restoreTerminals.terminals": [
    {
      "splitTerminals": [
        {
          "name": "git",
          "commands": [
            "cd <your directory>",
            "npm run test"         // your git command(s)
          ]
        }
      ]
    },
    {
      "splitTerminals": [
        {
          "name": "gulp",
          "commands": [
            "cd zip",
            "gulp sass"
          ]
        }
      ]
    }
  ]

将打开两个终端,一个用于git工作,另一个用于gulp工作。他们每个人都可以执行多个命令。

示例绑定:

{
  "key": "shift+alt+t",    // whatever keybinding if you wish
  "command": "restore-terminals.restoreTerminals",
},

或者您可以在启动时运行它。


如果您使用的是Windows,我强烈建议您使用此设置:

"terminal.integrated.windowsEnableConpty": false,

直到此错误得到修复:Closing a conpty terminal can hang the window