![Windows 终端:启动时预定义选项卡](https://linux22.com/image/1604816/Windows%20%E7%BB%88%E7%AB%AF%EF%BC%9A%E5%90%AF%E5%8A%A8%E6%97%B6%E9%A2%84%E5%AE%9A%E4%B9%89%E9%80%89%E9%A1%B9%E5%8D%A1.png)
是否可以启动带有(多个)选项卡的 Windows 终端,每个选项卡位于一个配置的工作目录上?
原因是,我通常每天都手动执行相同的步骤:启动相同的几个 shell,然后在每个 shell 上 cd 到特定路径。例如
- GitBash 到我的工作区
- Cmd 到我的工作区中的建筑目录
- Ubuntu bash 一些数据生成应用程序
- ...
如果能将这些步骤自动化的话,那就太酷了。
这个问题有点类似于使用预定义选项卡打开终端而是针对新的 Windows 终端。
答案1
我认为创建自定义快捷方式至少可以部分解决您的问题。
- 在桌面任意位置单击右键->新建->快捷方式
- 输入您想要的启动配置,例如:
wt ; new-tab -p "Command Prompt" -d C:\Users\Donatas\Workspace ; split-pane -p "Ubuntu"
- wt-打开 Windows 终端
- new-tab - 打开新标签页
- 拆分窗格 - 拆分屏幕(您可以垂直和水平拆分选项卡)
- -p 指定配置文件,例如 Ubuntu
- -d 指定配置文件的起始目录
更多信息:https://devblogs.microsoft.com/commandline/windows-terminal-preview-v0-9-release/
- 输入快捷方式名称。
- 运行快捷方式,您将获得两个选项卡,并且第二个选项卡应该被分成两部分。如下所示:
- 您可以选择更改图标、固定到任务或开始栏。
答案2
- 打开 Windows 终端
- 打开设置 (Ctrl+,)
- 点击“打开 JSON 文件”
- 使用您的启动配置添加(或修改)可选参数“startupActions”(例如@Donatas Repečka 所述)。唯一的区别是 - 您不需要在启动时输入“wt”。
- 保存文件并重新打开 WT。
不要忘记字符串应该被正确地转义。
我的样本:
"startupActions": "new-tab -p \"Command Prompt\" --title \"mytab\" -d C:\\Users\\blabla ; new-tab -p \"Command Prompt\" --title \"othertab\" -d C:\\Users\\otherbla ,
关于以下几点:
- 在我的示例中,末尾有一个逗号,因为存在下一行配置
- 如果你在开头(或结尾)放置“;”,WT 将在开头(或结尾)打开默认选项卡
- 使用 Windows 快捷方式的解决方案非常棒,但是你不能使用很长的字符串(超过 260 个符号),所以它可能不适合你
答案3
由于我没有发表评论的声誉,因此我将发布答案。
wt ; new-tab -p "Command Prompt" -d C:\Users\Donatas\Workspace ; split-pane -p "Ubuntu"
此命令仅适用于 Windows 命令 ( cmd
) shell,不适用于 Power Shell。WSL 中的命令也不同。请参阅CLI 参考wt
更多细节。
在 Power Shell 中它看起来像这样:
wt `; new-tab -p "Command Prompt" -d C:\Users\Donatas\Workspace `; split-pane -p "Ubuntu"
答案4
这个简单的单行命令创建了一个带有 3 个 powershell 分割窗口的选项卡,以及一个带有 3 个 bash 分割窗口的选项卡;
- 当你在 cmd.exe 上时
wt powershell.exe ; nt bash --noprofile --norc ; sp bash --noprofile --norc ; sp bash --noprofile --norc ; focus-tab -t 0 ; sp powershell.exe ; sp powershell.exe
- 当你使用 powershell.exe 或 wsl bash 时
cmd.exe /c "wt powershell.exe ; nt bash --noprofile --norc ; sp bash --noprofile --norc ; sp bash --noprofile --norc ; focus-tab -t 0 ; sp powershell.exe ; sp powershell.exe"