Sorin Ionescu
14 years ago
11 changed files with 240 additions and 248 deletions
@ -1,16 +0,0 @@ |
|||||||
# Load and run colors. |
|
||||||
autoload -U colors |
|
||||||
colors -i |
|
||||||
|
|
||||||
# Set the default prompt theme. |
|
||||||
PS1="%n@%m:%~%# " |
|
||||||
|
|
||||||
# Set the default Git prompt theme. |
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Prefix before the branch name. |
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")" # Suffix after the branch name. |
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="*" # Indicator to display if the branch is dirty. |
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" # Indicator to display if the branch is clean. |
|
||||||
|
|
||||||
# Enable parameter, arithmentic expansion and command substitution in prompt. |
|
||||||
setopt prompt_subst |
|
||||||
|
|
@ -1,24 +1,25 @@ |
|||||||
# Path to oh-my-zsh. |
# Path to oh-my-zsh. |
||||||
export OMZ="$HOME/.oh-my-zsh" |
OMZ="$HOME/.oh-my-zsh" |
||||||
|
|
||||||
# Set the name of the theme to load (see $OMZ/themes/). |
|
||||||
# Setting it to 'random' loads a random theme. |
|
||||||
export ZSH_THEME="robbyrussell" |
|
||||||
|
|
||||||
# Set to 'true' to enable case-sensitivity. |
# Set to 'true' to enable case-sensitivity. |
||||||
export CASE_SENSITIVE='false' |
CASE_SENSITIVE='false' |
||||||
|
|
||||||
# Set to 'true' to disable color (auto set on dumb terminals). |
# Set to 'true' to disable color (auto set on dumb terminals). |
||||||
export DISABLE_COLOR='false' |
DISABLE_COLOR='false' |
||||||
|
|
||||||
# Set to 'true' to disable auto setting the tab and window titles. |
# Set to 'true' to disable auto setting the tab and window titles. |
||||||
export DISABLE_AUTO_TITLE='false' |
DISABLE_AUTO_TITLE='false' |
||||||
|
|
||||||
# Set the plugins to load (see $OMZ/plugins/). |
# Set the plugins to load (see $OMZ/plugins/). |
||||||
# Example: plugins=(rails git textmate ruby lighthouse) |
# Example: plugins=(git lighthouse rails ruby textmate) |
||||||
plugins=(git) |
plugins=(git) |
||||||
|
|
||||||
|
# This will make you scream: OH MY ZSH! |
||||||
source "$OMZ/oh-my-zsh.zsh" |
source "$OMZ/oh-my-zsh.zsh" |
||||||
|
|
||||||
|
# Load the prompt theme (type prompt -l to list all themes). |
||||||
|
# Setting it to 'random' loads a random theme. |
||||||
|
[[ "$TERM" != 'dumb' ]] && prompt sorin || prompt off |
||||||
|
|
||||||
# Customize to your needs... |
# Customize to your needs... |
||||||
|
|
||||||
|
@ -1,15 +0,0 @@ |
|||||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}[" |
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" |
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}" |
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
|
||||||
|
|
||||||
#Customized git status, oh-my-zsh currently does not allow render dirty status before branch |
|
||||||
git_custom_status() { |
|
||||||
local cb=$(current_branch) |
|
||||||
if [ -n "$cb" ]; then |
|
||||||
echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
PROMPT='%2~ $(git_custom_status) »%b ' |
|
@ -0,0 +1,35 @@ |
|||||||
|
function +vi-git-status() { |
||||||
|
# Untracked files. |
||||||
|
if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then |
||||||
|
hook_com[unstaged]='%F{red}●%f' |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
function prompt_minimal_precmd () { |
||||||
|
setopt noxtrace noksharrays localoptions |
||||||
|
vcs_info |
||||||
|
} |
||||||
|
|
||||||
|
function prompt_minimal_setup() { |
||||||
|
setopt noxtrace noksharrays localoptions |
||||||
|
prompt_opts=(cr subst percent) |
||||||
|
|
||||||
|
autoload -Uz add-zsh-hook |
||||||
|
autoload -Uz vcs_info |
||||||
|
|
||||||
|
add-zsh-hook precmd prompt_minimal_precmd |
||||||
|
|
||||||
|
zstyle ':vcs_info:*' enable bzr git hg svn |
||||||
|
zstyle ':vcs_info:*' check-for-changes true |
||||||
|
zstyle ':vcs_info:*' stagedstr '%F{green}●%f' |
||||||
|
zstyle ':vcs_info:*' unstagedstr '%F{yellow}●%f' |
||||||
|
zstyle ':vcs_info:*' formats ' - [%b%c%u]' |
||||||
|
zstyle ':vcs_info:*' actionformats " - [%b%c%u|%F{cyan}%a%f]" |
||||||
|
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b|%F{cyan}%r%f' |
||||||
|
zstyle ':vcs_info:git*+set-message:*' hooks git-status |
||||||
|
|
||||||
|
PROMPT='%2~${vcs_info_msg_0_} » ' |
||||||
|
} |
||||||
|
|
||||||
|
prompt_minimal_setup "$@" |
||||||
|
|
@ -1,43 +0,0 @@ |
|||||||
#!/usr/bin/env zsh |
|
||||||
# ------------------------------------------------------------------------------ |
|
||||||
# Prompt for the Zsh shell: |
|
||||||
# * One line. |
|
||||||
# * VCS info on the right prompt. |
|
||||||
# * Only shows the path on the left prompt by default. |
|
||||||
# * Crops the path to a defined length and only shows the path relative to |
|
||||||
# the current VCS repository root. |
|
||||||
# * Wears a different color wether the last command succeeded/failed. |
|
||||||
# * Shows user@hostname if connected through SSH. |
|
||||||
# * Shows if logged in as root or not. |
|
||||||
# ------------------------------------------------------------------------------ |
|
||||||
|
|
||||||
# Customizable parameters. |
|
||||||
PROMPT_PATH_MAX_LENGTH=30 |
|
||||||
PROMPT_DEFAULT_END=❯ |
|
||||||
PROMPT_ROOT_END=❯❯❯ |
|
||||||
PROMPT_SUCCESS_COLOR=$FG[071] |
|
||||||
PROMPT_FAILURE_COLOR=$FG[124] |
|
||||||
PROMPT_VCS_INFO_COLOR=$FG[242] |
|
||||||
|
|
||||||
# Set required options. |
|
||||||
setopt promptsubst |
|
||||||
|
|
||||||
# Load required modules. |
|
||||||
autoload -U add-zsh-hook |
|
||||||
autoload -Uz vcs_info |
|
||||||
|
|
||||||
# Add hook for calling vcs_info before each command. |
|
||||||
add-zsh-hook precmd vcs_info |
|
||||||
|
|
||||||
# Set vcs_info parameters. |
|
||||||
zstyle ':vcs_info:*' enable hg bzr git |
|
||||||
zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos. |
|
||||||
zstyle ':vcs_info:*:*' unstagedstr '!' |
|
||||||
zstyle ':vcs_info:*:*' stagedstr '+' |
|
||||||
zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)" |
|
||||||
zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c" |
|
||||||
zstyle ':vcs_info:*:*' nvcsformats "%~" "" |
|
||||||
|
|
||||||
# Define prompts. |
|
||||||
PROMPT="%(0?.%{$PROMPT_SUCCESS_COLOR%}.%{$PROMPT_FAILURE_COLOR%})${SSH_TTY:+[%n@%m]}%{$FX[bold]%}%$PROMPT_PATH_MAX_LENGTH<..<"'${vcs_info_msg_0_%%.}'"%<<%(!.$PROMPT_ROOT_END.$PROMPT_DEFAULT_END)%{$FX[no-bold]%}%{$FX[reset]%} " |
|
||||||
RPROMPT="%{$PROMPT_VCS_INFO_COLOR%}"'$vcs_info_msg_1_'"%{$FX[reset]%}" |
|
@ -0,0 +1,47 @@ |
|||||||
|
# ------------------------------------------------------------------------------ |
||||||
|
# Prompt for ZSH: |
||||||
|
# * One line. |
||||||
|
# * VCS info on the right prompt. |
||||||
|
# * Only shows the path on the left prompt by default. |
||||||
|
# * Crops the path to a defined length and only shows the path relative to |
||||||
|
# the current VCS repository root. |
||||||
|
# * Wears a different color wether the last command succeeded/failed. |
||||||
|
# * Shows user@hostname if connected through SSH. |
||||||
|
# * Shows if logged in as root or not. |
||||||
|
# ------------------------------------------------------------------------------ |
||||||
|
|
||||||
|
function prompt_nicoulaj_setup() { |
||||||
|
setopt noxtrace noksharrays localoptions |
||||||
|
prompt_opts=(cr subst percent) |
||||||
|
|
||||||
|
# Load required modules. |
||||||
|
autoload -Uz add-zsh-hook |
||||||
|
autoload -Uz vcs_info |
||||||
|
|
||||||
|
# Add hook for calling vcs_info before each command. |
||||||
|
add-zsh-hook precmd vcs_info |
||||||
|
|
||||||
|
# Customizable parameters. |
||||||
|
local max_path_chars=30 |
||||||
|
local user_char='❯' |
||||||
|
local root_char='❯❯❯' |
||||||
|
local success_color='%F{071}' |
||||||
|
local failure_color='%F{124}' |
||||||
|
local vcs_info_color='%F{242}' |
||||||
|
|
||||||
|
# Set vcs_info parameters. |
||||||
|
zstyle ':vcs_info:*' enable bzr git hg svn |
||||||
|
zstyle ':vcs_info:*:*' check-for-changes true # Can be slow on big repos. |
||||||
|
zstyle ':vcs_info:*:*' unstagedstr '!' |
||||||
|
zstyle ':vcs_info:*:*' stagedstr '+' |
||||||
|
zstyle ':vcs_info:*:*' actionformats "%S" "%r/%s/%b %u%c (%a)" |
||||||
|
zstyle ':vcs_info:*:*' formats "%S" "%r/%s/%b %u%c" |
||||||
|
zstyle ':vcs_info:*:*' nvcsformats "%~" "" |
||||||
|
|
||||||
|
# Define prompts. |
||||||
|
PROMPT="%(?.${success_color}.${failure_color})${SSH_TTY:+[%n@%m]}%B%${max_path_chars}<...<"'${vcs_info_msg_0_%%.}'"%<<%(!.${root_char}.${user_char})%b%f " |
||||||
|
RPROMPT="${vcs_info_color}"'${vcs_info_msg_1_}'"%f" |
||||||
|
} |
||||||
|
|
||||||
|
prompt_nicoulaj_setup "$@" |
||||||
|
|
@ -0,0 +1,34 @@ |
|||||||
|
# ------------------------------------------------------------------------------ |
||||||
|
# FILE: prompt_sorin_setup |
||||||
|
# DESCRIPTION: oh-my-zsh theme file. |
||||||
|
# AUTHOR: Sorin Ionescu <sorin.ionescu@gmail.com> |
||||||
|
# VERSION: 1.0.4 |
||||||
|
# SCREENSHOT: http://i.imgur.com/aipDQ.png |
||||||
|
# ------------------------------------------------------------------------------ |
||||||
|
|
||||||
|
|
||||||
|
function prompt_sorin_setup() { |
||||||
|
setopt localoptions noxtrace noksharrays |
||||||
|
prompt_opts=(cr subst percent) |
||||||
|
|
||||||
|
MODE_INDICATOR="%B%F{red}❮%f%b%F{red}❮❮%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_SHA_BEFORE="" |
||||||
|
ZSH_THEME_GIT_PROMPT_SHA_AFTER="" |
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD="" |
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="" |
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="" |
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" %F{blue}git%f:%F{red}" |
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED="%F{green} ✚%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED="%F{blue} ✹%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED="%F{red} ✖%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED="%F{magenta} ➜%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED="%F{yellow} ═%f" |
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{cyan} ✭%f" |
||||||
|
|
||||||
|
PROMPT='%F{cyan}%~%f$(git-prompt-info) %(!.%B%F{red}#%f%b.%B%F{green}❯%f%b) ' |
||||||
|
RPROMPT='%(?::%F{red}⏎%f)$(git-prompt-status)' |
||||||
|
} |
||||||
|
|
||||||
|
prompt_sorin_setup "$@" |
||||||
|
|
@ -1,48 +0,0 @@ |
|||||||
# ------------------------------------------------------------------------------ |
|
||||||
# FILE: sorin.zsh-theme |
|
||||||
# DESCRIPTION: oh-my-zsh theme file. |
|
||||||
# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) |
|
||||||
# VERSION: 1.0.3 |
|
||||||
# SCREENSHOT: http://i.imgur.com/aipDQ.png |
|
||||||
# ------------------------------------------------------------------------------ |
|
||||||
|
|
||||||
|
|
||||||
if [[ "$DISABLE_COLOR" != "true" ]]; then |
|
||||||
MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}" |
|
||||||
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" |
|
||||||
|
|
||||||
PROMPT='%{$fg[cyan]%}%c$(git_prompt_info) %(!.%{$fg_bold[red]%}#.%{$fg_bold[green]%}❯)%{$reset_color%} ' |
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[blue]%}git%{$reset_color%}:%{$fg[red]%}" |
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" |
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="" |
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
|
||||||
|
|
||||||
RPROMPT='${return_status}$(git_prompt_status)%{$reset_color%}' |
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚" |
|
||||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹" |
|
||||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖" |
|
||||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜" |
|
||||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═" |
|
||||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭" |
|
||||||
else |
|
||||||
MODE_INDICATOR="❮❮❮" |
|
||||||
local return_status="%(?::⏎)" |
|
||||||
|
|
||||||
PROMPT='%c$(git_prompt_info) %(!.#.❯) ' |
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" git:" |
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="" |
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="" |
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
|
||||||
|
|
||||||
RPROMPT='${return_status}$(git_prompt_status)' |
|
||||||
|
|
||||||
ZSH_THEME_GIT_PROMPT_ADDED=" ✚" |
|
||||||
ZSH_THEME_GIT_PROMPT_MODIFIED=" ✹" |
|
||||||
ZSH_THEME_GIT_PROMPT_DELETED=" ✖" |
|
||||||
ZSH_THEME_GIT_PROMPT_RENAMED=" ➜" |
|
||||||
ZSH_THEME_GIT_PROMPT_UNMERGED=" ═" |
|
||||||
ZSH_THEME_GIT_PROMPT_UNTRACKED=" ✭" |
|
||||||
fi |
|
@ -0,0 +1,110 @@ |
|||||||
|
# Prompt style and colors based on Steve Losh's Prose theme: |
||||||
|
# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme |
||||||
|
# |
||||||
|
# vcs_info modifications from Bart Trojanowski's zsh prompt: |
||||||
|
# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt |
||||||
|
# |
||||||
|
# Git untracked files modification from Brian Carper: |
||||||
|
# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt |
||||||
|
|
||||||
|
function virtualenv_info() { |
||||||
|
if [[ -n "$VIRTUAL_ENV" ]]; then |
||||||
|
echo '('`basename $VIRTUAL_ENV`') ' |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
function prompt_steeef_precmd() { |
||||||
|
if [[ -n "$__PROMPT_STEEEF_VCS_UPDATE" ]] ; then |
||||||
|
# Check for untracked files or updated submodules since vcs_info doesn't. |
||||||
|
if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then |
||||||
|
__PROMPT_STEEEF_VCS_UPDATE=1 |
||||||
|
fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c${__PROMPT_STEEEF_COLORS[4]}●%f)" |
||||||
|
else |
||||||
|
fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c)" |
||||||
|
fi |
||||||
|
zstyle ':vcs_info:*:prompt:*' formats "${fmt_branch}" |
||||||
|
|
||||||
|
vcs_info 'prompt' |
||||||
|
__PROMPT_STEEEF_VCS_UPDATE='' |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
function prompt_steeef_preexec() { |
||||||
|
case "$(history $HISTCMD)" in |
||||||
|
*git*) |
||||||
|
__PROMPT_STEEEF_VCS_UPDATE=1 |
||||||
|
;; |
||||||
|
*svn*) |
||||||
|
__PROMPT_STEEEF_VCS_UPDATE=1 |
||||||
|
;; |
||||||
|
esac |
||||||
|
} |
||||||
|
|
||||||
|
function prompt_steeef_chpwd() { |
||||||
|
__PROMPT_STEEEF_VCS_UPDATE=1 |
||||||
|
} |
||||||
|
|
||||||
|
function prompt_steeef_setup() { |
||||||
|
setopt localoptions noxtrace noksharrays |
||||||
|
prompt_opts=(cr subst percent) |
||||||
|
|
||||||
|
autoload -Uz add-zsh-hook |
||||||
|
autoload -Uz vcs_info |
||||||
|
|
||||||
|
add-zsh-hook precmd prompt_steeef_precmd |
||||||
|
add-zsh-hook preexec prompt_steeef_preexec |
||||||
|
add-zsh-hook chpwd prompt_steeef_chpwd |
||||||
|
|
||||||
|
__PROMPT_STEEEF_VCS_UPDATE=1 |
||||||
|
|
||||||
|
# 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 |
||||||
|
|
||||||
|
# Enable VCS systems you use. |
||||||
|
zstyle ':vcs_info:*' enable bzr git hg svn |
||||||
|
|
||||||
|
# check-for-changes can be really slow. |
||||||
|
# You should disable it if you work with large repositories. |
||||||
|
zstyle ':vcs_info:*:prompt:*' check-for-changes true |
||||||
|
|
||||||
|
# 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 fmt_branch="(${__PROMPT_STEEEF_COLORS[1]}%b%f%u%c)" |
||||||
|
local fmt_action="(${__PROMPT_STEEEF_COLORS[5]}%a%f)" |
||||||
|
local fmt_unstaged="${__PROMPT_STEEEF_COLORS[2]}●%f" |
||||||
|
local fmt_staged="${__PROMPT_STEEEF_COLORS[5]}●%f" |
||||||
|
|
||||||
|
zstyle ':vcs_info:*:prompt:*' unstagedstr "${fmt_unstaged}" |
||||||
|
zstyle ':vcs_info:*:prompt:*' stagedstr "${fmt_staged}" |
||||||
|
zstyle ':vcs_info:*:prompt:*' actionformats "${fmt_branch}${fmt_action}" |
||||||
|
zstyle ':vcs_info:*:prompt:*' formats "${fmt_branch}" |
||||||
|
zstyle ':vcs_info:*:prompt:*' nvcsformats "" |
||||||
|
|
||||||
|
PROMPT=" |
||||||
|
${__PROMPT_STEEEF_COLORS[3]}%n%f at ${__PROMPT_STEEEF_COLORS[2]}%m%f in ${__PROMPT_STEEEF_COLORS[5]}%~%f "'${vcs_info_msg_0_}'" |
||||||
|
"'$(virtualenv_info)'"$ " |
||||||
|
} |
||||||
|
|
||||||
|
prompt_steeef_setup "$@" |
||||||
|
|
@ -1,100 +0,0 @@ |
|||||||
# prompt style and colors based on Steve Losh's Prose theme: |
|
||||||
# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme |
|
||||||
# |
|
||||||
# vcs_info modifications from Bart Trojanowski's zsh prompt: |
|
||||||
# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt |
|
||||||
# |
|
||||||
# git untracked files modification from Brian Carper: |
|
||||||
# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt |
|
||||||
|
|
||||||
function virtualenv_info { |
|
||||||
[ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' |
|
||||||
} |
|
||||||
PR_GIT_UPDATE=1 |
|
||||||
|
|
||||||
setopt prompt_subst |
|
||||||
autoload colors |
|
||||||
colors |
|
||||||
|
|
||||||
autoload -U add-zsh-hook |
|
||||||
autoload -Uz vcs_info |
|
||||||
|
|
||||||
#use extended color pallete if available |
|
||||||
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then |
|
||||||
turquoise="%F{81}" |
|
||||||
orange="%F{166}" |
|
||||||
purple="%F{135}" |
|
||||||
hotpink="%F{161}" |
|
||||||
limegreen="%F{118}" |
|
||||||
else |
|
||||||
turquoise="$fg[cyan]" |
|
||||||
orange="$fg[yellow]" |
|
||||||
purple="$fg[magenta]" |
|
||||||
hotpink="$fg[red]" |
|
||||||
limegreen="$fg[green]" |
|
||||||
fi |
|
||||||
|
|
||||||
# enable VCS systems you use |
|
||||||
zstyle ':vcs_info:*' enable git svn |
|
||||||
|
|
||||||
# check-for-changes can be really slow. |
|
||||||
# you should disable it, if you work with large repositories |
|
||||||
zstyle ':vcs_info:*:prompt:*' check-for-changes true |
|
||||||
|
|
||||||
# set 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 |
|
||||||
PR_RST="%{${reset_color}%}" |
|
||||||
FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})" |
|
||||||
FMT_ACTION="(%{$limegreen%}%a${PR_RST})" |
|
||||||
FMT_UNSTAGED="%{$orange%}●" |
|
||||||
FMT_STAGED="%{$limegreen%}●" |
|
||||||
|
|
||||||
zstyle ':vcs_info:*:prompt:*' unstagedstr "${FMT_UNSTAGED}" |
|
||||||
zstyle ':vcs_info:*:prompt:*' stagedstr "${FMT_STAGED}" |
|
||||||
zstyle ':vcs_info:*:prompt:*' actionformats "${FMT_BRANCH}${FMT_ACTION}" |
|
||||||
zstyle ':vcs_info:*:prompt:*' formats "${FMT_BRANCH}" |
|
||||||
zstyle ':vcs_info:*:prompt:*' nvcsformats "" |
|
||||||
|
|
||||||
|
|
||||||
function steeef_preexec { |
|
||||||
case "$(history $HISTCMD)" in |
|
||||||
*git*) |
|
||||||
PR_GIT_UPDATE=1 |
|
||||||
;; |
|
||||||
*svn*) |
|
||||||
PR_GIT_UPDATE=1 |
|
||||||
;; |
|
||||||
esac |
|
||||||
} |
|
||||||
add-zsh-hook preexec steeef_preexec |
|
||||||
|
|
||||||
function steeef_chpwd { |
|
||||||
PR_GIT_UPDATE=1 |
|
||||||
} |
|
||||||
add-zsh-hook chpwd steeef_chpwd |
|
||||||
|
|
||||||
function steeef_precmd { |
|
||||||
if [[ -n "$PR_GIT_UPDATE" ]] ; then |
|
||||||
# check for untracked files or updated submodules, since vcs_info doesn't |
|
||||||
if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then |
|
||||||
PR_GIT_UPDATE=1 |
|
||||||
FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})" |
|
||||||
else |
|
||||||
FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})" |
|
||||||
fi |
|
||||||
zstyle ':vcs_info:*:prompt:*' formats "${FMT_BRANCH}" |
|
||||||
|
|
||||||
vcs_info 'prompt' |
|
||||||
PR_GIT_UPDATE= |
|
||||||
fi |
|
||||||
} |
|
||||||
add-zsh-hook precmd steeef_precmd |
|
||||||
|
|
||||||
PROMPT=$' |
|
||||||
%{$purple%}%n%{$reset_color%} at %{$orange%}%m%{$reset_color%} in %{$limegreen%}%~%{$reset_color%} $vcs_info_msg_0_ |
|
||||||
$(virtualenv_info)$ ' |
|
Loading…
Reference in new issue