最近特にターミナルでコードを書くことが増えてきたため、プロンプトでブランチ名であったりそのほかの情報も適宜だせるようにしたいなと設定を調べたり試したりしてみました。
以前までは、bash_completion を利用して表示するということをしていました。.bashrc の例ですが、こんな感じです。
1 2 3 4 |
|
これはこれで良いのですが、git でしか利用できません。メインで利用する VCS は git なので問題ありませんが、それ以外の VCS で管理されたコードを読んだりする機会も多々あります。 調べてみたところ、zsh に vcs_info という関数があることを知りました。そこで、これを使ってプロンプトを少し派手にしてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
- 2行目 : 色指定を簡単に行えるようにするため、colors をロードします
- 5行目 : 今回のテーマである vcs_info をロードします
- 6-7行目 : 対応する VCS 共通の表示フォーマットを定義します : formats: 通常表示されるフォーマット : actionformats: コンフリクト時などに表示されるフォーマット
- 8行目 : svn と bzr の時にはリビジョン番号表示をしたいので、フォーマットを定義します
- 9-13行目 : git の場合の各種設定や専用フォーマットの定義を行っています : check-for-changes: ローカルでの変更があるかチェックをします : staged: "git status" 実行時の "Changes to be committed" があるときには "+" を表示します : unstaged: "git status" 実行時の "Changes not staged for commit" があるときには "-" を表示します
- 27行目 : プロンプトの表示色をランダムでカラーにします
- 28行目 : 顔文字はコマンド成否で変化します(ネタ元)
はじめは %1v として $psvar[1]
の値をとっていたのですが、カラースキーマがうまくいかないため配列の要素を直指定する形にしています。vcs 管理下にないディレクトリでは $psvar[1]
の値は何も入らないため、デザインも崩れません。