Display VCS info in prompts

通常 VCS (Version Control System) 都會在工作目錄底下藏一些特殊目錄用來儲存資訊,如 .svn .git .hg 等,因此我們可以在 shell prompt 上動一些手腳,當我們進到 VCS 工作目錄時,自動顯示相關的訊息在 prompt 上。

而 zsh-beta 4.3.6-dev-0+20080921-1 內建了由 Frank Terbeck 開發的 vcs_info 子系統,可以自動偵測 bzr, cdv, CVS, darcs, git, hg, mtn, p4, svk, svn, tla 等多種 VCS,並設定相關的環境變數可以顯示在 prompt 上。

zsh prompt

我的 prompt 設定如下

autoload -Uz vcs_info #a71d5d;">&& vcs_info
zstyle ':vcs_info:*' actionformats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
zstyle ':vcs_info:*' formats       \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
#795da3;">precmd () { vcs_info }
EXITCODE#a71d5d;">="%(?..%?%1v )"
JOBS#a71d5d;">="%(1j.%j .)"
#a71d5d;">local BLUE#a71d5d;">="%{^[[1;34m%}"
#a71d5d;">local RED#a71d5d;">="%{^[[1;31m%}"
#a71d5d;">local GREEN#a71d5d;">="%{^[[1;32m%}"
#a71d5d;">local CYAN#a71d5d;">="%{^[[1;36m%}"
#a71d5d;">local YELLOW#a71d5d;">="%{^[[1;33m%}"
#a71d5d;">local NO_COLOUR#a71d5d;">="%{^[[0m%}"
PROMPT#a71d5d;">="${RED}${EXITCODE}${CYAN}${JOBS}${YELLOW}%* ${RED}%n${BLUE}@%m:${GREEN}%40<...<%B%~%b%<<"'${vcs_info_msg_0_}'"
${YELLOW}%# ${NO_COLOUR}"

詳細的設定請參閱 zshcontrib(3) GATHERING INFORMATION FROM VERSION CONTROL SYSTEMS


已發佈

分類:

,

作者:

標籤: