123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #
- # A theme based on Steve Losh's Extravagant Prompt with vcs_info integration.
- #
- # Authors:
- # Steve Losh <steve@stevelosh.com>
- # Bart Trojanowski <bart@jukie.net>
- # Brian Carper <brian@carper.ca>
- # steeef <steeef@gmail.com>
- # Sorin Ionescu <sorin.ionescu@gmail.com>
- #
- # Screenshots:
- # http://i.imgur.com/HyRvv.png
- #
- function prompt_steeef_precmd {
- # Check for untracked files or updated submodules since vcs_info does not.
- if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then
- branch_format="(${_prompt_steeef_colors[1]}%b%f%u%c${_prompt_steeef_colors[4]}●%f)"
- else
- branch_format="(${_prompt_steeef_colors[1]}%b%f%u%c)"
- fi
- zstyle ':vcs_info:*:prompt:*' formats "${branch_format}"
- vcs_info 'prompt'
- if (( $+functions[python-info] )); then
- python-info
- fi
- }
- function prompt_steeef_setup {
- setopt LOCAL_OPTIONS
- unsetopt XTRACE KSH_ARRAYS
- prompt_opts=(cr percent sp subst)
- # Load required functions.
- autoload -Uz add-zsh-hook
- autoload -Uz vcs_info
- # Add hook for calling vcs_info before each command.
- add-zsh-hook precmd prompt_steeef_precmd
- # Tell prezto we can manage this prompt
- zstyle ':prezto:module:prompt' managed 'yes'
- # Use extended color pallete if available.
- if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
- _prompt_steeef_colors=(
- "%F{81}" # Turquoise
- "%F{166}" # Orange
- "%F{135}" # Purple
- "%F{161}" # Hotpink
- "%F{118}" # Limegreen
- )
- else
- _prompt_steeef_colors=(
- "%F{cyan}"
- "%F{yellow}"
- "%F{magenta}"
- "%F{red}"
- "%F{green}"
- )
- fi
- # Formats:
- # %b - branchname
- # %u - unstagedstr (see below)
- # %c - stagedstr (see below)
- # %a - action (e.g. rebase-i)
- # %R - repository path
- # %S - path in the repository
- local branch_format="(${_prompt_steeef_colors[1]}%b%f%u%c)"
- local action_format="(${_prompt_steeef_colors[5]}%a%f)"
- local unstaged_format="${_prompt_steeef_colors[2]}●%f"
- local staged_format="${_prompt_steeef_colors[5]}●%f"
- # Set editor-info parameters.
- zstyle ':prezto:module:editor:info:keymap:primary' format '$'
- # Set vcs_info parameters.
- zstyle ':vcs_info:*' enable bzr git hg svn
- zstyle ':vcs_info:*:prompt:*' check-for-changes true
- zstyle ':vcs_info:*:prompt:*' unstagedstr "${unstaged_format}"
- zstyle ':vcs_info:*:prompt:*' stagedstr "${staged_format}"
- zstyle ':vcs_info:*:prompt:*' actionformats "${branch_format}${action_format}"
- zstyle ':vcs_info:*:prompt:*' formats "${branch_format}"
- zstyle ':vcs_info:*:prompt:*' nvcsformats ""
- # Set python-info parameters.
- zstyle ':prezto:module:python:info:virtualenv' format '(%v)'
- # Define prompts.
- PROMPT="
- ${_prompt_steeef_colors[3]}%n%f at ${_prompt_steeef_colors[2]}%m%f in ${_prompt_steeef_colors[5]}%~%f "'${vcs_info_msg_0_}'"
- "'$python_info[virtualenv]${editor_info[keymap]} '
- RPROMPT=''
- }
- function prompt_steeef_preview {
- local +h PROMPT=''
- local +h RPROMPT=''
- local +h SPROMPT=''
- editor-info 2> /dev/null
- prompt_preview_theme 'steeef'
- }
- prompt_steeef_setup "$@"
- # vim: ft=zsh
|