5分くらいでWindows TerminalへのGit Bashの追加から日本語文字化けを直すまでの流れ
はじめに
Windows TerminalにGit Bashを追加する際に少し手間取ったため,備忘録として当記事を書きました.
Windows TerminalプロファイルへのGit Bashの追加
Windows TerminalでGitBashを開けるようにするには,Windows Terminalの設定からGit Bashのプロファイルを追加する必要があります.
手順としては以下となります.
手順
- Windows Termalの設定から「新しいプロファイルを追加します」を選択
- コマンドラインの設定項目に以下の値を設定する
値:{Git Bashのパス} -l
( 私の環境の場合は➔C:\Program Files\Git\bin\bash.exe -l
)
( -l オプションは後述する問題に対応するために追加しています) - 設定を保存し,Windows Terminalを再起動する
Git Bashのファイル表示の文字化けを直す
前述の設定によってWindows TerminalからGit Bashを起動できるようになりましたが,私の環境では起動したGit Bashで日本語のファイル名が□などによる文字化けが発生しました.
こちらの原因はGit Bashのロケール設定だったため,これを変更します.
手順
- Git Bashで
locale
コマンドをうち,現在のロケールを確認する
(ここのロケールの値をja_JP.utf8
にすることで正しく表示されるようになります) - 以下のコマンドを逐次実行する.
export LC_ALL=ja_JP.utf8
export LANG=ja_JP.utf8
export LANGUAGE=ja_JP.utf8
export LC_CTYPE="ja_JP.utf8"
export LC_NUMERIC="ja_JP.utf8"
export LC_TIME="ja_JP.utf8"
export LC_COLLATE="ja_JP.utf8"
export LC_MONETARY="ja_JP.utf8"
export LC_MESSAGES="ja_JP.utf8"
- 再度
locale
コマンドで確認する
ロケールの値がja_JP.utf8
になっていれば成功です
プロファイルによるロケール変更の自動適用
前述の項のロケール変更は,コマンドを実行したGit Bashのインスタンスにのみ適用されるため,再度起動するたびにロケール変更を行う必要があります.
Git Bash起動時にプロファイルを読み込むことでこの手間を省略することができます.
WindowsのGit Bashは起動時にホームディレクトリに存在する.bash_profile
内のコマンドを実行します.そのため,以下の手順によってプロファイルを作成します.
手順
-
code ~/.bash_profile
でプロファイルを作成する - ファイル内に以下をペーストし,保存する
export LC_ALL=ja_JP.utf8
export LANG=ja_JP.utf8
export LANGUAGE=ja_JP.utf8
export LC_CTYPE="ja_JP.utf8"
export LC_NUMERIC="ja_JP.utf8"
export LC_TIME="ja_JP.utf8"
export LC_COLLATE="ja_JP.utf8"
export LC_MONETARY="ja_JP.utf8"
export LC_MESSAGES="ja_JP.utf8"
- Bashを再起動して,
locale
やls
コマンドなどで適用を確認
-lオプションについて
通常であればホームディレクトリ以下の.bash_profileを読み込むはずだが,私の環境ではプロファイルが読み込まれませんでした.そのため少し調べたところ,-l
オプションをつけてログインシェルとしてBashを開くことで,.bash_profileを読み込むらしいので試してみるとプロファイルが読み込まれるようになりました.これが,Windows Terminalのプロファイル設定で-l
オプションを追加した理由です.
Git Bashのタブタイトルの変更
Git BashのタブのタイトルはWindwos Terminalからの変更が適用されません.
変更については,以下のコードを.bash_profile
に追加することでできます.
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
echo -ne '\033]0;'"{タブのタイトル}"'\a'
また,以下のコードのように.bash_profileに関数として定義するとコマンドラインからsettitle "タブタイトル名"
で適宜タイトルを変更することができるようになります.
.bash_profile
settitle () {
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
echo -ne '\033]0;'"$1"'\a'
}
Git Bash
settitle "New Title"
参考
Discussion