はじめに
WSL2を用いて開発を行っていると、コマンドライン操作を行うことが多くなります。
その際にGitを使用することも頻繁なはずで、Git Bashのように現在のブランチ名がプロンプトに表示されると非常に便利です。
なぜブランチ名表示が重要か?
Gitを使っていると「今どのブランチで作業しているっけ?」という時間を生みたくありません。
そんな状況だと作業ミスも発生しやすくなります。
しかしながらWSL2のデフォルトプロンプトだとブランチ名などは特に表示されないため、非常に不便ですし、いちいちgit branch
などのコマンドを実行するのはとてもめんどくさいです。
背景知識
WSL2では、プロンプトのカスタマイズを行うために、シェルの設定ファイルである.bashrc
を使用することができます。
このファイルにカスタム設定を追加することで、プロンプトのスタイルや表示を変更できます。
(もちろん、プロンプトのカスタマイズ以外にも、エイリアスの設定や環境変数の定義なども行えます。)
今回はGitの現在のブランチ名を取得する関数を定義し、シェルプロンプトに組み込むことで、ブランチ名が表示されるようにしてみましょう。
方法
ステップ1: .bashrc
ファイルを編集
まず、WSL2で利用されるホームディレクトリにある.bashrc
ファイルを編集します。
コマンドを使用して、エディタで該当のファイルを開きます。
自分はVSCodeを使っているので、以下のようにVSCodeで開いています。
code ~/.bashrc
ステップ2: .bashrc
にコードを追加
.bashrc
ファイルに以下のコードを追加します。このコードは、プロンプトに現在のGitブランチを表示するためのものです。
# color
USER_COLOR="\[\033[1;37m\]" # white
LOCATION_COLOR="\[\033[1;32m\]" # green
GIT_BRANCH_COLOR="\[\033[0;33m\]" # orange
NO_COLOR="\[\033[0m\]" # No_Color
# git branch
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
# PS1
PS1="${USER_COLOR}\u ${LOCATION_COLOR}\w${GIT_BRANCH_COLOR}\$(parse_git_branch) ${NO_COLOR}\$ "
コードの解説
- カラー設定: プロンプトの色を指定します。好きに変更してもらって構いません。
-
parse_git_branch
: 現在のGitブランチを取得するコマンドを実行します。-
git branch 2> /dev/null
について:-
2> /dev/null
は、「標準エラー出力」を無視するための記述です。Gitリポジトリではないディレクトリでgit branch
を実行すると、エラーメッセージが表示されることがあります。このエラーメッセージは通常画面上には必要ないので、「ブラックホール」とも呼ばれる/dev/null
にエラーメッセージを送って捨てています。
-
-
-
PS1
: シェルプロンプトのデザインを設定する変数です。parse_git_branch
を呼び出し、プロンプトにブランチ名を追加しています。
ステップ3: 設定を反映
ファイルを保存してエディタを閉じたら、以下のコマンドを実行して設定を反映します。
source ~/.bashrc
これで、新しいプロンプト設定が有効になります。
まとめ
あくまで今回のカスタムプロンプトの設定は私好みの一例に過ぎないので、みなさんなりのカスタマイズを楽しんでみてください。(もしよかったらコメントなどで教えてもらえると嬉しいです!)