From ca8b0dfc29462780f7d5af6d3fe000eb20da6ad2 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Thu, 31 Oct 2013 18:05:05 -0400 Subject: Wow look reorganized zsh config --- .zsh/aliases.zsh | 58 ++++++++++++++++++++++++ .zsh/gitprompt.zsh | 68 +++++++++++++--------------- .zsh/title.zsh | 12 +++-- .zshrc | 128 +++++++++++------------------------------------------ 4 files changed, 122 insertions(+), 144 deletions(-) create mode 100644 .zsh/aliases.zsh diff --git a/.zsh/aliases.zsh b/.zsh/aliases.zsh new file mode 100644 index 00000000..39d27603 --- /dev/null +++ b/.zsh/aliases.zsh @@ -0,0 +1,58 @@ +function reload { + source ~/.zshrc + reset +} + +function mkcd { + mkdir $@ + if [ "$1" = "-p" ]; then + cd $2 + else + cd $1 + fi +} + +function home.programble.me { + ssh -R 8071:localhost:$1 quartz +} + + +alias killlall='killall' +alias irb='ripl' +alias l='ls' +alias ll='ls' + +alias ls='ls --color=auto' +alias grep='grep --color=auto' +alias rm='rm -vI' + +alias gvim='gvim 2> /dev/null' + +alias sprunge='curl -F "sprunge=<-" http://sprunge.us' + +if which hub &> /dev/null; then + compdef hub=git + alias git=hub +fi + +alias g=git +alias ga='git add' +alias gb='git branch' +alias gc='git commit' +alias gcl='git clone' +alias gco='git checkout' +alias gd='git diff' +alias gi='git init' +alias gl='git log' +alias glg="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --color" +alias gm='git merge' +alias gmv='git mv' +alias gp='git push' +alias gpom='git pull origin master' +alias gr='git remote' +alias grm='git rm' +alias gs='git status -sb' +alias gsh='git show' +alias gst='git stash' +alias gt='git tag' +alias gu='git pull' diff --git a/.zsh/gitprompt.zsh b/.zsh/gitprompt.zsh index 0a420786..433481b9 100644 --- a/.zsh/gitprompt.zsh +++ b/.zsh/gitprompt.zsh @@ -1,50 +1,50 @@ # Ported from http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/ -function gitprompt_update -{ - unset __CURRENT_GIT_BRANCH - unset __CURRENT_GIT_BRANCH_STATUS - unset __CURRENT_GIT_BRANCH_IS_DIRTY +function _gitprompt_update { + unset _git_branch + unset _git_status + unset _git_dirty - local st="$(git status 2>/dev/null)" + local st="$(git status 2> /dev/null)" if [[ -n "$st" ]]; then local -a arr arr=(${(f)st}) if [[ $arr[1] =~ 'Not currently on any branch.' ]]; then - __CURRENT_GIT_BRANCH='no-branch' + _git_branch='none' else - __CURRENT_GIT_BRANCH="${arr[1][(w)4]}"; + _git_branch="${arr[1][(w)-1]}" fi if [[ $arr[2] =~ 'Your branch is' ]]; then if [[ $arr[2] =~ 'ahead' ]]; then - __CURRENT_GIT_BRANCH_STATUS='ahead' + _git_status='ahead' elif [[ $arr[2] =~ 'diverged' ]]; then - __CURRENT_GIT_BRANCH_STATUS='diverged' + _git_status='diverged' else - __CURRENT_GIT_BRANCH_STATUS='behind' + _git_status='behind' fi fi - if [[ ! $st =~ 'nothing' ]]; then # Untracked files count as clean - __CURRENT_GIT_BRANCH_IS_DIRTY='1' + if [[ ! $st =~ 'nothing' ]]; then + _git_dirty=1 fi fi } -# Changed around the formatting here a bunch -function gitprompt -{ - if [ -n "$__CURRENT_GIT_BRANCH" ]; then - local s="%{${fg[yellow]}%}" - if [ -n "$__CURRENT_GIT_BRANCH_IS_DIRTY" ]; then +function gitprompt { + if [[ -n "$_git_branch" ]]; then + local s + [[ -z "$1" ]] && s="%{${fg[yellow]}%}" + + if [[ -n "$_git_dirty" ]]; then s+="⚡" else s+=":" fi - s+="$__CURRENT_GIT_BRANCH" - case "$__CURRENT_GIT_BRANCH_STATUS" in + + s+="$_git_branch" + case "$_git_status" in ahead) s+="↑" ;; @@ -56,24 +56,18 @@ function gitprompt ;; esac - echo $s + echo "$s" fi } -function gitprompt_preexec -{ - case "$1" in - g*) # Switched from git* to also detect my short aliases - __EXECUTED_GIT_COMMAND=1 - ;; - esac +function _gitprompt_preexec { + [[ "$1" =~ "^g" ]] && _git_command=1 } -function gitprompt_precmd -{ - if [ -n "$__EXECUTED_GIT_COMMAND" ]; then - gitprompt_update - unset __EXECUTED_GIT_COMMAND +function _gitprompt_precmd { + if [[ -n "$_git_command" ]]; then + _gitprompt_update + unset _git_command fi } @@ -81,6 +75,6 @@ typeset -ga preexec_functions typeset -ga precmd_functions typeset -ga chpwd_functions -preexec_functions+='gitprompt_preexec' -precmd_functions+='gitprompt_precmd' -chpwd_functions+='gitprompt_update' +preexec_functions+='_gitprompt_preexec' +precmd_functions+='_gitprompt_precmd' +chpwd_functions+='_gitprompt_update' diff --git a/.zsh/title.zsh b/.zsh/title.zsh index b0d7ad70..5a00c458 100644 --- a/.zsh/title.zsh +++ b/.zsh/title.zsh @@ -1,9 +1,9 @@ function _title { - echo -en "\033]0;$@\a" + print -Pn "\033]0;$@\a" } function title { - if [ -n "$1" ]; then + if [[ -n "$1" ]]; then _title_custom=1 _title $@ else @@ -13,14 +13,18 @@ function title { } function _title_preexec { - [ -z "$_title_custom" ] && _title "$1" + [[ -z "$_title_custom" ]] && _title "$1" } +unset _title_host +[[ -n "$SSH_CLIENT" ]] && _title_host='%m:' + function _title_precmd { - [ -z "$_title_custom" ] && _title zsh + [[ -z "$_title_custom" ]] && _title '$_title_host%1~$(gitprompt nocolor)' } typeset -ga preexec_functions typeset -ga precmd_functions + preexec_functions+='_title_preexec' precmd_functions+='_title_precmd' diff --git a/.zshrc b/.zshrc index 4761b028..c0ccb065 100644 --- a/.zshrc +++ b/.zshrc @@ -1,45 +1,26 @@ -zstyle ':completion:*' completer _complete _ignored _correct _approximate +HISTFILE=~/.histfile +HISTSIZE=5000 +SAVEHIST=5000 +setopt appendhistory autocd extendedglob nomatch notify autopushd +setopt interactive_comments prompt_subst +unsetopt beep +bindkey -v + +# Completion +zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate _prefix zstyle ':completion:*' max-errors 2 zstyle :compinstall filename '/home/home/.zshrc' autoload -Uz compinit compinit -HISTFILE=~/.histfile -HISTSIZE=5000 -SAVEHIST=5000 -setopt appendhistory autocd nomatch notify autopushd interactive_comments -setopt prompt_subst -unsetopt beep extendedglob - -bindkey -e -bindkey "\e[1~" beginning-of-line -bindkey "\e[4~" end-of-line -bindkey "\e[5~" beginning-of-history -bindkey "\e[6~" end-of-history -bindkey "\e[3~" delete-char -bindkey "\e[2~" quoted-insert -bindkey "\e[5C" forward-word -bindkey "\eOc" emacs-forward-word -bindkey "\e[5D" backward-word -bindkey "\eOd" emacs-backward-word -bindkey "\e\e[C" forward-word -bindkey "\e\e[D" backward-word -bindkey "\e[8~" end-of-line -bindkey "\e[7~" beginning-of-line -bindkey "\eOH" beginning-of-line -bindkey "\eOF" end-of-line -bindkey "\e[H" beginning-of-line -bindkey "\e[F" end-of-line - +# Colors autoload colors zsh/terminfo colors -[ "$SSH_CLIENT" ] && PROMPT_HOST="%{$fg[magenta]%}%m:" -PROMPT=$'%{$terminfo[bold]$fg[green]%}[$PROMPT_HOST%{$fg[blue]%}%30<..<%~$(gitprompt)%{$fg[green]%}]%(!.#.$)%{$terminfo[sgr0]$reset_color%} ' -RPROMPT="%(?..%{$terminfo[bold]$fg[green]%}[%{$fg[red]%}%?%{$fg[green]%}]%{$terminfo[sgr0]%})" +[[ -n "$COLORTERM" ]] && export TERM='xterm-256color' -# Libs and stuff +# Libs source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ZSH_HIGHLIGHT_STYLES[command]='bold' @@ -57,87 +38,28 @@ ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=yellow,bold' source ~/.zsh/z/z.sh -if [ -d /usr/share/chruby ]; then +if [[ -d /usr/share/chruby ]]; then source /usr/share/chruby/chruby.sh source /usr/share/chruby/auto.sh - chruby ruby-2.0.0 + chruby 'ruby-2.0.0' fi -[[ -s /home/home/.nvm/nvm.sh ]] && . /home/home/.nvm/nvm.sh +[[ -s ~/.nvm/nvm.sh ]] && source ~/.nvm/nvm.sh -[ -f /usr/local/heroku ] && export PATH="/usr/local/heroku/bin:$PATH" +[[ -f /usr/local/heroku ]] && export PATH="/usr/local/heroku/bin:$PATH" source ~/.zsh/gitprompt.zsh - source ~/.zsh/title.zsh -# Environment - -export EDITOR=vim -export PATH=$PATH:~/bin +source ~/.zsh/aliases.zsh -[ "$TERM" = "xterm" ] && export TERM=xterm-256color - -# Functions and aliases - -function game { - xinit =$1 ${@:2} -- :1 vt6 -} - -function mkcd { - mkdir $@ - if [ "$1" = "-p" ]; then - cd $2 - else - cd $1 - fi -} - -function home.programble.me { - ssh -R 8071:localhost:$1 quartz -} - -function reload { - source ~/.zshrc - reset -} - -alias sprunge='curl -F "sprunge=<-" http://sprunge.us' - -alias killlall='killall' -alias irb='ripl' -alias l='ls' -alias ll='ls' - -alias ls='ls --color=auto' -alias grep='grep --color=auto' -alias rm='rm -vI' +# Environment -alias gvim='gvim 2> /dev/null' +EDITOR=vim -if which hub &> /dev/null; then - compdef hub=git - alias git=hub -fi +# Prompt -alias g=git -alias ga='git add' -alias gb='git branch' -alias gc='git commit' -alias gcl='git clone' -alias gco='git checkout' -alias gd='git diff' -alias gi='git init' -alias gl='git log' -alias glg="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --color" -alias gm='git merge' -alias gmv='git mv' -alias gp='git push' -alias gpom='git pull origin master' -alias gr='git remote' -alias grm='git rm' -alias gs='git status -sb' -alias gsh='git show' -alias gst='git stash' -alias gt='git tag' -alias gu='git pull' +unset _prompt_host +[[ -n "$SSH_CLIENT" ]] && _prompt_host='%{$fg[magenta]%}%m:' +PROMPT=$'%{$terminfo[bold]$fg[green]%}[$PROMPT_HOST%{$fg[blue]%}%30<..<%~$(gitprompt)%{$fg[green]%}]%(!.#.$)%{$terminfo[sgr0]$reset_color%} ' +RPROMPT="%(?..%{$terminfo[bold]$fg[green]%}[%{$fg[red]%}%?%{$fg[green]%}]%{$terminfo[sgr0]%})" -- cgit 1.4.1