直到昨天我的 Windows 终端的 settings.json 有这个 Git Bash 的配置文件:
...,
"defaultProfile": "{my_guid}",
"profiles":
{
"defaults": {},
"list":
[
{
"guid": "{my_guid}",
"hidden": false,
"name": "Git Bash",
"source": "Git"
},
...
]
}
...
这很简单,我可以使用配置文件并将其设置为默认值。
今天无法识别此配置文件,Windows 终端打开并显示未找到默认配置文件的警告,并且 Git Bash 配置文件不在下拉列表中。
我知道我可以将配置文件设置为使用 Git Bash 可执行文件的路径,但我想知道发生了什么变化。
为什么使用源属性的配置文件以前有效?为什么它不再起作用了?指定这一点的文档或发行说明在哪里?
该
"source"
属性指示 Windows 终端的“动态配置文件”或“ JSON 片段扩展”。虽然 JSON 片段扩展是一项相当新的功能,但在给出这个答案时,该"source"
属性的 Microsoft 文档仍然只是提到它们用于动态配置文件。很抱歉,我之前对这个答案的看法假设这是一个动态配置文件。Windows 终端包括用于 WSL(任何已安装的发行版)、PowerShell Core 和 Azure 的动态配置文件的内置生成器(尽管这似乎更像是一个静态生成器)。您可以在源代码的此目录中找到生成器。
JSON Fragment Extensions 用于第三方应用程序,例如 Git Bash,它最近在其安装程序中添加了此功能。
在您确认 Git Bash 确实在使用该
"source"
属性后,我决定尝试安装程序并确认使用片段扩展。正如预期的那样,我在我的settings.json
个人资料(和设置 UI)中看到了你所做的相同的事情:在 中
C:\ProgramData\Microsoft\Windows Terminal\Fragments\Git
,我可以看到实际的扩展名 (git-bash.json
):老实说,我不太确定。在我有限的测试中,该功能似乎非常强大。我可以打破它的唯一方法是做一些病态的事情,比如:
"guid"
属性我尝试过的大多数其他事情都是可以恢复的或预期的:
卸载适用于 Windows 的 Git - 正确删除了该片段。Windows 终端甚至足够聪明,可以在重新启动时删除空的父文件夹。
删除配置文件本身
settings.json
——因为片段仍然存在,一旦保存更改,它就会自动重新创建。