弊環境
OS:Windows11 Pro
VSCode バージョン:1.68.1
発生している問題
VSCodeのデフォルトターミナルをGitBashに設定するため、
"terminal.integrated.defaultProfile.windows"でGitBashを指定しようとしたらそもそもドロップダウンに表示されない。
結論
settings.jsonを以下のように編集しました。2つ注意点があります。
- "source"プロパティは設定しない
- "path"プロパティにはフルパスを指定する(※Gitを既定の場所以外にインストールした場合)
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
"GitBash": {
"path": [
"D:\\Git\\bin\\bash.exe"
],
"args":["-l"],
"icon": "terminal-bash"
}
},
調査・対応内容
settings.jsonに以下のように追記した。そして再起動。
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
"Git Bash": {
"source": "Git Bash",
"path": [
"D:\\Git\\bin\\bash.exe"
],
"args":["-l"],
"icon": "terminal-bash"
}
},
"terminal.integrated.defaultProfile.windows": "Git Bash"
再起動しても変わらないため、Git Bashのスペースを取り除いてみた。
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
"GitBash": {
"source": "GitBash",
"path": [
"D:\\Git\\bin\\bash.exe"
],
"args":["-l"],
"icon": "terminal-bash"
}
},
"terminal.integrated.defaultProfile.windows": "GitBash"
再起動しても変わらず。。。
よく見ると"terminal.integrated.defaultProfile.windows"の値に対して以下の問題が表示されていた。
"terminal.integrated.profiles.windows"の設定内容が反映されず、どこか別のプロファイルが参照されている?
Windows で使用される既定のプロファイルです。terminal.integrated.shell.windows または terminal.integrated.shellArgs.windows のいずれかが設定されている場合、現在この設定は無視されます。
Value is not accepted. Valid values: null, "PowerShell", "Windows PowerShell", "Command Prompt", "Ubuntu-20.04 (WSL)", "JavaScript Debug Terminal".(1)
"terminal.integrated.shell.windows"を追記して、Git Bashのフルパスを設定してみた。
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
"GitBash": {
"source": "GitBash",
"path": [
"D:\\Git\\bin\\bash.exe"
],
"args":["-l"],
"icon": "terminal-bash"
}
},
"terminal.integrated.defaultProfile.windows": "GitBash",
"terminal.integrated.shell.windows" : "D:\\Git\\bin\\bash.exe"
ターミナルを再起動するとデフォルトでGit Bashが起動した!
しかし、ターミナルのプロファイルはsettings.jsonで設定した内容が反映されていないまま。。。
VSCodeのissueを見てみると色々と類似の問題が挙げられており、
以下issueのスレッドにあったstackoverflowの回答内容で解決した。
VSCode issue #126023
https://github.com/microsoft/vscode/issues/126023
GitBashの"source"プロパティを削除してVSCodeを再起動すると、
設定の"terminal.integrated.defaultProfile.windows"ドロップダウン、
およびターミナルで選択できるプロファイルにもGitBashが表示されるようになった!
※Gitを規定の場所にインストールしていない場合は、"path"プロパティへフルパスを書く必要があるみたいです。