Macターミナルのプロンプト表示をフォルダパスのみに変更する

ターミナルのプロンプト、初期状態では [ユーザー名@PC名 現在のディレクトリ名] のような表示になっていますよね。
ここにさらにブランチ名なんて表示されようものなら、長すぎてコマンドが折り返すこと必至です。

このプロンプト表示を変更するため、.bash_profile を編集してみたので、手順を残しておこうと思います。

変更後のプロンプトと.bash_profileに追記した記述

最終的にこんな感じの表示にしました。

/User/ユーザー名/.bash_profile に追記したのは下記の一行です。

export PS1='[\e[32m]\w[\e[31m]$(__git_ps1 " (%s)")[\e[0m]\$ '

.bash_profile を作成

ここから手順について、残していきます。

まず /User/ユーザー名/ のフォルダに、.bash_profile が存在するか確認します。
ユーザー名 の部分はお使いのPCのユーザー名に変更してください。)

$ ls /Users/ユーザー名/.bash_profile

ファイルパスが表示されれば、存在するので編集していきます。

.bash_profile がない場合は下記コマンドで作成しましょう。

$ touch /Users/ユーザー名/.bash_profile

.bash_profile を編集

vimで .bash_profile を編集します。
(隠しファイルを表示させてから、普通にファイルをエディタで開いて編集しても大丈夫です。)

$ vim /User/ユーザー名/.bash_profile

(キーボードを半角英数字にしてから)i と入力して編集モードにします。
一番下に「– INSERT –」と表示されていれば編集できます。

保存は、「esc」キーを押して、編集モードから抜けてから、:wq を入力して「Enter」キーを押せばOKです。
何かエラーが表示されて保存できないときは、:wq! で強制保存できます。
保存しないで終了する場合は :q で「Enter」すれば戻れます。(エラーが出て終われない場合は :q!

フォルダパスのみ表示させる

/User/ユーザー名/.bash_profile に、下記のように記述して保存します。

export PS1='\w \$ '

変更を適用するために、.bash_profile を実行します。(ターミナル再起動でもOK)

$ source /Users/ユーザー名/.bash_profile

ファイルパスのみが表示されるようになります。

ちなみに、\w\W (大文字)に変更すると、現在のディレクトリ名のみが表示されるようになります。

export PS1='\W \$ '

Gitのブランチ名を表示させる(.git-prompt.sh の設定が終わっている場合)

/User/ユーザー名/.bash_profile に下記のような記述がすでにある場合、

source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true

/User/ユーザー名/.bash_profile の上記記述の下に、下記のような一行を記述して保存します。

export PS1='\w $(__git_ps1 "(%s)") \$ '

変更を適用するために、.bash_profile を実行します。(ターミナル再起動でもOK)

$ source /Users/ユーザー名/.bash_profile

ファイルパスの後に「()」でブランチ名が表示されるようになります。

「()」ではなく「<>」にしたいという場合は、"(%s)" の部分を "<%s>" に変更すればOKです。

export PS1='\w $(__git_ps1 "<%s>") \$ '

Gitのブランチ名を表示させる(.git-prompt.sh の設定が終わっていない場合)

まず git-prompt.shgit-completion.bash が存在するか確認します。
(ブランチ名を表示させるだけなら git-completion.bash は必要ありませんが、一緒に設定してしまいます。不要な場合は git-completion.bash の部分は無視して進めてください。)

$ ls /usr/local/etc/bash_completion.d/git-prompt.sh
$ ls /usr/local/etc/bash_completion.d/git-completion.bash

ファイルパスが表示されれば存在するので、ダウンロードは不要です。

ない場合は、下記コマンドでダウンロードを行います。

$ curl -O https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
$ curl -O https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash

現在のフォルダにダウンロードされるので、下記コマンドで移動 git-prompt.shgit-completion.bash を移動します。

$ mv git-prompt.sh /usr/local/etc/bash_completion.d/
$ mv git-completion.bash /usr/local/etc/bash_completion.d/

/usr/local/etc/bash_completion.d/git-prompt.sh/usr/local/etc/bash_completion.d/git-completion.bash が準備できたら、/User/ユーザー名/.bash_profileに下記を追記します。

source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash GIT_PS1_SHOWDIRTYSTATE=true

export PS1='\w $(__git_ps1 "(%s)") \$ '

ファイルパスの後にブランチ名が表示されるようになります。

プロンプトに色を付ける

ANSIエスケープコードというものを記述して色を指定することができます。

例えば、フォルダ名を緑色、ブランチ名を赤色にする場合は、下記のように記述します。

export PS1='\[\e[32m\]\w \[\e[31m\]$(__git_ps1 "<%s>") \[\e[0m\]\$ '

\[\e[整数m\] で指定しています。
整数部分の数字は0〜107まであり、数字によって太字にしたり、文字色を変更したり、背景色を追加したりできます。

今回の場合、\w の前に 文字色を緑色にする \[\e[32m\] を追加し、
$(__git_ps1 "<%s>") の前に文字色を赤色にする \[\e[31m\] を追加しました。
そして \$ の前に全ての指定をリセットする \[\e[0m\] を追加しています。

コードの詳細は、英語版のWikipedia ANSI escape code の項目で確認できます。
(英語がわからなくても、「SGR parameters」や「Colors」の表でなんとなく数字がわかると思います。)

さいごに

HTMLタグのように結構簡単に色をつけたりできるんですね。
斜体にしたり背景色を付けたりもできて、結構自分好みにカスタマイズできそうです。

カテゴリー: Mac