是否可以将终端设置保存到工作区?对于我的大多数项目,我总是打开两个终端选项卡。一处完成所有git工作,一处执行gulp任务。这是两个不同的文件夹,都不是项目根目录。当我打开一个保存的工作区时,它总是只打开一个标签到项目根目录。
答案 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
这是我从 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"
]
},
]
}
],
而最终的结果...是所有选项卡颜色在恢复后都会更新。 当然,任何使用过键盘模拟来自动执行任务的人都应该知道,在任务完成之前,您不能输入文本或点击其他地方。
答案 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 。