VS CodeでGitBashを標準利用できるように設定する

# はじめに
Macの環境とWindowsの環境が違いすぎるので、Git Bashを利用してある程度の操作は共通化したいと思いました。
また、VS Codeで標準ターミナルをGit Bashに変更したいと思い、設定しました。

## 環境
Windows10

# VS Codeのターミナルを変更

設定の画面から、下記の項目を探して、Gitの`bash.exe`に変更しました。

`"terminal.integrated.shell.windows": "D:\\Git\\bin\\bash.exe"`

# Python(Anaconda)を利用できるように設定

Git Bashの`bash.bashrc`に以下の内容を追加しました。

```sh:bash.bashrcに追加した内容
# Python Setting
. D:/Anaconda3/etc/profile.d/conda.sh
```

上記の方法でうまくいかない場合は、環境変数に追加する必要があるかもしれません。
`bash.bashrc`に下記の内容を追加してください。

```sh:Anaconda環境変数の追加
export PATH=$PATH:"C:\Users\（ユーザー名）\Anaconda3"
export PATH=$PATH:"C:\Users\（ユーザー名）\Anaconda3\Scripts"
```


# Git Bashの表示カスタマイズ

Git Bashの表示が崩れていたので、Git Bash表示を変更しました。

Git Bashの表示を設定しているファイルは、`git-prompt.sh`なので、そのスクリプトを変更します。

```sh:git-prompt.sh
if test -f /etc/profile.d/git-sdk.sh
then
	TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
	TITLEPREFIX=$MSYSTEM
fi

if test -f ~/.config/git/git-prompt.sh
then
	. ~/.config/git/git-prompt.sh
else
	PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
	# PS1="$PS1"'\n'                 # new line 「不要なのでコメントアウト」ここがあると、Pythonの情報で改行されてしまう。
	PS1="$PS1"'\[\033[32m\]'       # change to green
	PS1="$PS1"'\u@\h '             # user@host<space>
	# PS1="$PS1"'\[\033[35m\]'       # change to purple 「不要なのでコメントアウト」
	# PS1="$PS1"'$MSYSTEM '          # show MSYSTEM 「不要なのでコメントアウト」
	PS1="$PS1"'\[\033[33m\]'       # change to brownish yellow
	PS1="$PS1"'\W'                 # current working directory 「/w(フルパス)→/W(現在のパス)」
	if test -z "$WINELOADERNOEXEC"
	then
		GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
		COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
		COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
		COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
		if test -f "$COMPLETION_PATH/git-prompt.sh"
		then
			. "$COMPLETION_PATH/git-completion.bash"
			. "$COMPLETION_PATH/git-prompt.sh"
			PS1="$PS1"'\[\033[36m\]'  # change color to cyan
			PS1="$PS1"'`__git_ps1`'   # bash function
		fi
	fi
	PS1="$PS1"'\[\033[0m\]'        # change color
	# PS1="$PS1"'\n'                 # new line 「不要なのでコメントアウト」
	PS1="$PS1"'$ '                 # prompt: always $
fi

MSYS2_PS1="$PS1"               # for detection by MSYS2 SDK's bash.basrc

# Evaluate all user-specific Bash completion scripts (if any)
if test -z "$WINELOADERNOEXEC"
then
	for c in "$HOME"/bash_completion.d/*.bash
	do
		# Handle absence of any scripts (or the folder) gracefully
		test ! -f "$c" ||
		. "$c"
	done
fi
```

# VS CodeでGitBashを利用しているときに、bash_profileが読み込まれない場合

VS Codeの起動設定で、`"terminal.integrated.shell.windows"`のみ設定した場合、bash_profileが読み込まれなかったため、`"terminal.integrated.shellArgs.windows"`を設定し、ログインシェルで起動するように設定した。

```json:VS CodeのSetting.json
    "terminal.integrated.shell.windows": "D:\\Git\\bin\\bash.exe",
    "terminal.integrated.shellArgs.windows": ["-l"],
```

また、bash_profileを読み込むと`git-prompt.sh`の設定が反映されなかったので、下記の文を追加して、bash_profile内でbashの設定を行うように変更した。

```sh:bash_profileの表示設定部分
# 表示の設定
PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
PS1="$PS1"'\[\033[32m\]'       # change to green
PS1="$PS1"'\u@\h '             # user@host<space>
PS1="$PS1"'\[\033[33m\]'       # change to brownish yellow
PS1="$PS1"'\W'                 # current working directory
if test -z "$WINELOADERNOEXEC"
then
    GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
    COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
    COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
    COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
    if test -f "$COMPLETION_PATH/git-prompt.sh"
    then
        . "$COMPLETION_PATH/git-completion.bash"
        . "$COMPLETION_PATH/git-prompt.sh"
        PS1="$PS1"'\[\033[36m\]'  # change color to cyan
        PS1="$PS1"'`__git_ps1`'   # bash function
    fi
fi
PS1="$PS1"'\[\033[0m\]'        # change color
PS1="$PS1"'$ '                 # prompt: always $
export PS1="$PS1"
```


# 参考サイト
[ターミナルの表示内容(プロンプト)の変更・カスタマイズ方法まとめ](https://qiita.com/hmmrjn/items/60d2a64c9e5bf7c0fe60)
[ログインシェルとインタラクティブシェルと~/.bashrc達の関係](https://qiita.com/incep/items/7e5760de0c2c748296aa)