Last active
January 16, 2016 22:47
-
-
Save joshjordan/033fd9f674a670da0460 to your computer and use it in GitHub Desktop.
Simple prezto prompt with working directory and git info on the left prompt, and current time on right prompt.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# My prezto prompt. Simplified version of (read: almost completely lifted from) steeef theme | |
# | |
function prompt_joshjordan_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_joshjordan_colors[1]}%b%f%u%c${_prompt_joshjordan_colors[4]}●%f)" | |
else | |
branch_format="(${_prompt_joshjordan_colors[1]}%b%f%u%c)" | |
fi | |
zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" | |
vcs_info 'prompt' | |
} | |
function prompt_joshjordan_setup { | |
setopt LOCAL_OPTIONS | |
unsetopt XTRACE KSH_ARRAYS | |
prompt_opts=(cr percent 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_joshjordan_precmd | |
# Use extended color pallete if available. | |
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then | |
_prompt_joshjordan_colors=( | |
"%F{81}" # Turquoise | |
"%F{166}" # Orange | |
"%F{135}" # Purple | |
"%F{161}" # Hotpink | |
"%F{118}" # Limegreen | |
) | |
else | |
_prompt_joshjordan_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_joshjordan_colors[1]}%b%f%u%c)" | |
local action_format="(${_prompt_joshjordan_colors[5]}%a%f)" | |
local unstaged_format="${_prompt_joshjordan_colors[2]}●%f" | |
local staged_format="${_prompt_joshjordan_colors[5]}●%f" | |
# 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 "" | |
# Get the time | |
local time="%D{%L:%M:%S%p}" | |
# Define prompts. | |
PROMPT="${_prompt_joshjordan_colors[5]}%~%f "'${vcs_info_msg_0_}'" $ " | |
RPROMPT="[ $time ]" | |
} | |
prompt_joshjordan_setup "$@" | |
export LSCOLORS=ExFxBxDxCxegedabagacad |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Example prompt looks like: