Mac OS XはマルチユーザOSですが開発用に使う場合、自分専用であることがほとんどなのでTerminalのプロンプトに自分のアカウントが表示されてても特に嬉しくないですね。短いプロンプトの方がいい。
デフォルト
hostname:Desktop iwazer$
いらないものをトル
大昔の共有ホストじゃないんだしホスト名、ユーザ名要らない〜
PS1='\W $ '
Desktop $
これでカレントワーキングディレクトリの末端のみの表示になります。
パス出てないとイヤ
ホスト名、ユーザ名の代わりにディレクトリはパス(Home以下は相対だが)がいいという場合、小文字の\wにすればOK
PS1='\w $ '
~/Desktop/work $
いつもここから
~/.bash_profileに仕込んでおけば新しくTerminalを開くと同時に適用されます。
:
export PS1='\W $ '
時間を出す
コマンドのおおまかな実行時間を知りたいとかよくありますね。プロンプトに時間が出てると便利かも!
export PS1='\W \t $ '
まぁ、これプロンプトが表示された時の時刻なので、コマンドをコピーしておいて、一度空打ちしてからペースト&実行しないと、開始時間として使えないわけですがあくまでも目安として。
ちゃんと実行時間を知るのが目的ならtime使えや(`・д・´)
色をつける
エスケープシーケンス使うと色が付きますが詳しいことはググれ…
export PS1='\[\033[40;1;32m\]\W \[\033[40;2;37m\]\t\[\033[0m\] $ '
Gitのブランチを出す キタ━(゚∀゚)━!
ちょっとまてよコレ、ナイスすぎるだろ。
https://cybozu.atlassian.net/wiki/pages/viewpage.action?pageId=3145730#Git&GitHub-現在のブランチをプロンプトで表示したい
しかし、そのままではMacのBashでは使えなかったので修正。
このコードは少々ダメなとこがあります。下に加筆あり
git_branch() {
echo $(git branch 2>/dev/null | sed -ne "s/^\* \(.*\)$/\1/p")
}
そんなわけで、いまの私の設定はコレ
export PS1='\[\033[40;0;33m\]\W/ \[\033[40;2;37m\]\t\[\033[0m\] \[\033[40;1;32m\]$(git_branch)\[\033[0m\] $ '
gitプロジェクトフォルダであろうとなかろうと毎回、新しい行になるたびにgit branchが実行されるが、まぁ今のマシンは速いから (゚ε゚)キニシナイ!!
おまけ
ちなみにデフォルトの設定をわざわざ書くと
export PS1='\h:\W \u$'
こういうことです。
2013/04/13 追記
git-branch
はたいてい色が付く設定で利用していると思われます。こんな感じ。
[color]
branch = always
diff = always
status = always
interactive = always
ということは、上記のgit_branch
関数はエスケープシーケンスが付いてる上にさらに付けようとしていた(-ω-)
なぜ気づいたかというと、会社のOSX Lionでは何の問題もなかったのに、自分のOSX Mountain LionだとBashで履歴マッチとかさせるとカーソルポジションがおかしくなってたから。
git-branchコマンドに--no-colorオプションを渡したら解決しました。
git_branch() {
echo $(git branch --no-color 2>/dev/null | sed -ne "s/^\* \(.*\)$/\1/p")
}
また、自分の設定はって紹介していたプロンプトも後ですぐに色を変えるのに無駄にリセットしてたり(背景色によっては必要かもですが)してるのが気になったので、現在の設定を書いておきます。
export PS1='\[\033[0;33m\]\W/ \[\033[1;30m\]\t \[\033[1;32m\]$(git_branch)\[\033[0m\] $ '