helm/zsh/prompt
2014-07-17 04:26:38 -04:00

94 lines
2.2 KiB
Bash

#!/bin/zsh
# GIT Stuff
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}+%{$fg[white]%}"
# ZSH_THEME_GIT_PROMPT_CLEAN=""
##################
# Build Prompt #
##################
function _prompt_pwd {
SHORTPWD=`print -Pn "%3~"`
if [[ -n "${ZSH_VERSION:-}" ]]
then _pwd="${SHORTPWD[0,1]}"
else _pwd="${SHORTPWD:0:1}"
fi
[[ $_pwd =~ "[^/~]" ]] && SHORTPWD=".../$SHORTPWD"
echo -n $SHORTPWD
}
function _prompt_git {
[ "`git_prompt_info`" ] && echo -n "$(git_prompt_info)"
}
function _prompt_vimode {
# The prompt turns green in command mode, and red in insert mode
PROMPT="$"
MODE_INDICATOR="%{$fg[green]%}%{$PROMPT%}"
MODE_PROMPT="${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}"
if [ $MODE_PROMPT ]; then
echo -n "$MODE_PROMPT "
else
echo -n "$PROMPT "
fi
}
function _prompt_rbenv {
local ruby_version
ruby_version="$(rbenv local 2>/dev/null)"
[ "$?" -eq 0 ] && echo -n " %{$fx[bold]%}%{$fg[red]%}:$ruby_version"
}
function _prompt_pyenv {
local py_version
py_version="$(pyenv local 2>/dev/null)"
[ "$?" -eq 0 ] && echo -n " %{$fx[bold]%}%{$fg[yellow]%}:$py_version"
}
# prompts
function _lprompt {
# Start each prompt with a newline
echo
# Show the hostname if this is an SSH session
if [ ! -z "$SSH_CLIENT" ]; then
echo -n "%{$fg[blue]%}"
if is_mac; then
echo -n "$(hostname | sed -e 's/\.local$//') "
else
echo -n "$(hostname) "
fi
fi
# Print the prompt
echo -n '%{$fg[red]%}%{$FX[bold]%}$(_prompt_vimode)%{$reset_color%}'
}
function _rprompt {
# Make the rprompt a bright grey to set it apart
echo -n "%{$FG[245]%}"
echo -n '$(_prompt_pwd)'
# Show the branch/status if in a git repo
echo -n '$(_prompt_git)'
# Display the local version of rb/pyenv
command_exists rbenv && echo -n '$(_prompt_rbenv)'
command_exists pyenv && echo -n '$(_prompt_pyenv)'
# Reset formatting for command output
echo -n "%{$reset_color%}"
}
PROMPT="$(_lprompt)"
RPROMPT="$(_rprompt)"
# vim:set ft=zsh: