tokoromのその他の日記
- iPhoneアプリ開発関連: iPhoneアプリ開発まっしぐら★
- vim関連: vimまっしぐら★
2011-07-15
zshでgitの状態(編集有り / 未commit / 未push)を表示する
情報元
基本、
(zsh版)pushし忘れないようにプロンプトに表示するようにした - ゆろよろ日記
のまんまです。
表示イメージ
- testという名前のブランチにいるので右のほうに「@test」と出ている
- 次に vi .vimrc とファイルを編集したので「@test-」というように「-」で編集した(unstageな)ファイルがあることを示す
- 次に git add .vimrc で編集したファイルをステージングすると「@test+」というように「+」でステージングされたファイルがあることを示す
- 最後に git commit でステージングされたファイルをコミットすると「@test?」というように「?」で未pushのコミットがあることを示す
というようにします。
事前準備
zshのバージョンが 4.3.10 以降である必要がありますので、古いようでしたら事前にupdateが必要です。
.zshrc への設定追加
- Gitと連携する部分
# gitのブランチ名と変更状況をプロンプトに表示する autoload -Uz is-at-least if is-at-least 4.3.10; then # バージョン管理システムとの連携を有効にする autoload -Uz vcs_info autoload -Uz add-zsh-hook zstyle ':vcs_info:*' enable git zstyle ':vcs_info:git:*' check-for-changes true zstyle ':vcs_info:git:*' stagedstr "+" zstyle ':vcs_info:git:*' unstagedstr "-" zstyle ':vcs_info:git:*' formats '@%b%u%c' zstyle ':vcs_info:git:*' actionformats '@%b|%a%u%c' # VCSの更新時にPROMPTを自動更新する function _update_vcs_info_msg() { psvar=() LANG=en_US.UTF-8 vcs_info [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" psvar[2]=$(_git_not_pushed) } function _git_not_pushed() { if [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then head="$(git rev-parse HEAD)" for x in $(git rev-parse --remotes) do if [ "$head" = "$x" ]; then return 0 fi done echo "?" fi return 0 } add-zsh-hook precmd _update_vcs_info_msg fi
- RPROMPT(右側のほう)に表示させる部分
RPROMPT="%{${fg[green]}%}%1v%2v [%~]%{${reset_color}%}"
%1v が、上記設定の psvar[1] に代入した部分(ブランチ名と+-)を表示するところ
%2v が、上記設定の psvar[2] に代入した部分(?)*1を表示するところ
*1:未pushのコミットがあるかどうか
トラックバック - http://d.hatena.ne.jp/tokorom/20110715/1310701693
- Twitter / @hodade
- Twitter / @glassonion1
- Twitter / @dexdev
- Twitter / @Kuwayoshi28
- Twitter / @sugatch39
- Twitter / @u16suzu
- Twitter / @umekun123
- Twitter / @satsuking
- Twitter / @sakurada_sb
- Twitter / @tomohisa
- Twitter / @koharu917
- Twitter / @synergysoft
- Twitter / @atakig
- Twitter / @nanaaki_77th
- Twitter / @aquariumy
- Twitter / @toshiyuki83
リンク元
- 101 http://pipes.yahoo.com/pipes/pipe.info?_id=tDfBdGWF3RGl9XNm1L3fcQ
- 85 http://www.google.co.jp/url?sa=t&rct=j&q=mac gvim&source=web&cd=5&ved=0CEoQFjAE&url=http://d.hatena.ne.jp/tokorom/20090502/1241278488&ei=GvKfTuCbEeHPmAW50JSDBQ&usg=AFQjCNEjnCxiGwe5KVNTDSaKYwp_oJJoSg&sig2=GYK03dX9XFUePTkZRjN-qw
- 63 http://www.main-loop.com/
- 59 http://www.google.co.jp/url?sa=t&rct=j&q=__va_args__&source=web&cd=4&ved=0CD4QFjAD&url=http://d.hatena.ne.jp/tokorom/20081103/1225702158&ei=UR2ETuXXOvCKmQWGlfEB&usg=AFQjCNFgTfM8Pl3p8xABYOjFEMXhfUekaQ&cad=rja
- 46 http://www.google.co.jp/url?sa=t&rct=j&q=mac ctags&source=web&cd=2&ved=0CDMQFjAB&url=http://d.hatena.ne.jp/tokorom/20090208/1234101184&ei=B0eFTvrJCMramAXktqwQ&usg=AFQjCNE8v-K_tbuKTKh2Q-IvIzYQu-58Pw&sig2=IU-vgmS73KjRl3xzmaGDdA
- 38 http://d.hatena.ne.jp/u1tnk/20110325/1301067465
- 34 http://www.google.co.jp/url?sa=t&rct=j&q=gvim mac&source=web&cd=1&ved=0CCAQFjAA&url=http://d.hatena.ne.jp/tokorom/20090502/1241278488&ei=O3TATv6HFMTKmQW4sNS6BA&usg=AFQjCNEjnCxiGwe5KVNTDSaKYwp_oJJoSg
- 31 http://search.yahoo.co.jp/search?p=iphone+同期 進まない&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
- 26 http://www.google.co.jp/url?sa=t&rct=j&q=no provisioned ios device is connected&source=web&cd=3&ved=0CCgQFjAC&url=http://d.hatena.ne.jp/tokorom/20090505/1241531011&ei=QfCfTsXOCMrXmAWk8rGEBQ&usg=AFQjCNHR41eaW38jIo0r5j2ggfo_gHELlQ
- 20 http://www.google.co.jp/url?sa=t&rct=j&q=tmux ssh&source=web&cd=3&ved=0CC0QFjAC&url=http://d.hatena.ne.jp/tokorom/20110417/1303005418&ei=aCGkTqWgFajmmAWl4IGeCQ&usg=AFQjCNHIUxg-S55TIIUvc2Hd6Jo0MZkfVQ

