summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.zsh/aliases.zsh58
-rw-r--r--.zsh/gitprompt.zsh68
-rw-r--r--.zsh/title.zsh12
-rw-r--r--.zshrc128
4 files changed, 122 insertions, 144 deletions
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 c30f97e9..4800c618 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/curtis/.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/curtis/.nvm/nvm.sh ]] && . /home/curtis/.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]%})"