diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 88d68e14..d3ee2dd8 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -37,7 +37,6 @@ alias gc='git commit -v' alias gca='git commit -v -a' alias gb='git branch' alias gba='git branch -a' -alias gdb='git branch -d' alias gcount='git shortlog -sn' alias gcp='git cherry-pick' diff --git a/lib/completion.zsh b/lib/completion.zsh index deeb5282..c231ee21 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -22,7 +22,7 @@ else fi zstyle ':completion:*' list-colors '' -zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts ) + unsetopt MENU_COMPLETE #setopt AUTO_MENU @@ -35,7 +35,12 @@ zstyle ':completion:*:*:*:*:*' menu yes select zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w" -zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts` + +# Load known hosts file for auto-completion with ssh and scp commands +if [ -f ~/.ssh/known_hosts ]; then + zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts ) + zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts` +fi # Complete on history # zstyle ':completion:*:history-words' stop yes diff --git a/lib/git.zsh b/lib/git.zsh index 84a3af0b..6ef950f1 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -5,7 +5,7 @@ function git_prompt_info() { } parse_git_dirty () { - if [[ $(git status | tail -n1) != "nothing to commit (working directory clean)" ]]; then + if [[ $((git status &> /dev/null) | tail -n1) != "nothing to commit (working directory clean)" ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" diff --git a/lib/rake_completion.zsh b/lib/rake_completion.zsh index 9ee8213a..c425a625 100644 --- a/lib/rake_completion.zsh +++ b/lib/rake_completion.zsh @@ -1,8 +1,8 @@ _rake_does_task_list_need_generating () { if [ ! -f .rake_tasks~ ]; then return 0; else - accurate=$(stat -c "%n" .rake_tasks~) - changed=$(stat -c "%n" Rakefile) + accurate=$(stat -f%m .rake_tasks~) + changed=$(stat -f%m Rakefile) return $(expr $accurate '>=' $changed) fi } diff --git a/themes/darkblood.zsh-theme b/themes/darkblood.zsh-theme index 8a00c345..33508fbd 100644 --- a/themes/darkblood.zsh-theme +++ b/themes/darkblood.zsh-theme @@ -1,9 +1,9 @@ # meh. Dark Blood Rewind, a new beginning. -PROMPT=$'${fg[red]}┌[${fg_bold[white]}%n${reset_color}${fg[red]}@${fg_bold[white]}%m${reset_color}${fg[red]}] [${fg_bold[white]}/dev/%y${reset_color}${fg[red]}] $(git_prompt_info)%(?,,${fg[red]}[${fg_bold[white]}%?${reset_color}${fg[red]}]) -${fg[red]}└[${fg_bold[white]}%~${reset_color}${fg[red]}]>${reset_color} ' -PS2=$' ${fg[red]}|>${reset_color} ' +PROMPT=$'%{$fg[red]%}┌[%{$fg_bold[white]%}%n%{$reset_color%}%{$fg[red]%}@%{$fg_bold[white]%}%m%{$reset_color%}%{$fg[red]%}] [%{$fg_bold[white]%}/dev/%y%{$reset_color%}%{$fg[red]%}] %{$(git_prompt_info)%}%(?,,%{$fg[red]%}[%{$fg_bold[white]%}%?%{$reset_color%}%{$fg[red]%}]) +%{$fg[red]%}└[%{$fg_bold[white]%}%~%{$reset_color%}%{$fg[red]%}]>%{$reset_color%} ' +PS2=$' %{$fg[red]%}|>%{$reset_color%} ' -ZSH_THEME_GIT_PROMPT_PREFIX="${fg[red]}[${fg_bold[white]}" -ZSH_THEME_GIT_PROMPT_SUFFIX="${reset_color}${fg[red]}] " -ZSH_THEME_GIT_PROMPT_DIRTY=" ${fg[red]}⚡${reset_color}" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}[%{$fg_bold[white]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}%{$fg[red]%}] " +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡%{$reset_color%}" diff --git a/themes/jnrowe.zsh-theme b/themes/jnrowe.zsh-theme new file mode 100644 index 00000000..7c8a7082 --- /dev/null +++ b/themes/jnrowe.zsh-theme @@ -0,0 +1,31 @@ +autoload -U add-zsh-hook +autoload -Uz 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{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f ' +zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' +zstyle ':vcs_info:*' enable git + +add-zsh-hook precmd prompt_jnrowe_precmd + +prompt_jnrowe_precmd () { + vcs_info + + if [ "${vcs_info_msg_0_}" = "" ]; then + dir_status="%F{2}→%f" + elif [[ $(git diff --cached --name-status 2>/dev/null ) != "" ]]; then + dir_status="%F{1}▶%f" + elif [[ $(git diff --name-status 2>/dev/null ) != "" ]]; then + dir_status="%F{3}▶%f" + else + dir_status="%F{2}▶%f" + fi +} + +local ret_status="%(?:%{$fg_bold[green]%}Ξ:%{$fg_bold[red]%}%S↑%s%?)" + +PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} ' + +# vim: set ft=zsh ts=4 sw=4 et: