直到昨天,我的 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 可执行文件的路径,但我想知道发生了什么变化。
为什么使用源属性的配置文件以前有效?为什么现在不再有效?指定此内容的文档或发行说明在哪里?
答案1
为什么之前使用源属性的配置文件可以起作用?
该"source"
属性表示“动态概况“ 或 ”JSON 片段扩展“适用于 Windows 终端。虽然 JSON 片段扩展是一个相当新的功能,但在我回答这个问题时,微软文档"source"
属性仍然只是提到它们用于动态配置文件。因此,抱歉,我之前对这个答案的看法是假设这是一个动态配置文件。
Windows Terminal 包含用于 WSL(任何已安装的发行版)、PowerShell Core 和 Azure 的动态配置文件的内置生成器(尽管这似乎更像是一个静态生成器)。您可以在以下位置找到生成器此目录源的。
JSON 片段扩展可用于第三方应用程序,例如 Git Bash,后者最近将其添加为其安装程序中的功能。
在您确认 Git Bash 确实使用了该"source"
属性后,我决定试用安装程序并确认片段扩展的使用。正如预期的那样,我在我的settings.json
配置文件(以及设置 UI)中看到了与您所做的相同的事情:
{
"guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}",
"hidden": false,
"name": "Git Bash",
"source": "Git"
}
在 中C:\ProgramData\Microsoft\Windows Terminal\Fragments\Git
,我可以看到实际的扩展(git-bash.json
):
{
"profiles": [
{
"guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}",
"name": "Git Bash",
"commandline": "d:/winbin/development/Git/bin/bash.exe -i -l",
"icon": "d:/winbin/development/Git/mingw64/share/git/git-for-windows.ico",
"startingDirectory": "%USERPROFILE%"
}
]
}
为什么它不再起作用了?
说实话我不太确定。在我有限的测试中,该功能似乎非常强大。唯一能破坏它的方法就是做一些病态的事情,比如:
- 编辑片段本身(需要 UAC 提升),这会导致您收到不同的错误。
"guid"
手动更改属性- 手动删除片段
我尝试过的大多数其他事情都是可以恢复的或预期的:
卸载 Windows 版 Git - 正确删除了片段。Windows 终端甚至足够智能,可以在重新启动时删除空的父文件夹。
删除配置文件本身
settings.json
——因为片段仍然存在,所以一旦保存更改就会自动重新创建。