summary refs log tree commit diff
path: root/.zsh
diff options
context:
space:
mode:
Diffstat (limited to '.zsh')
-rw-r--r--.zsh/aliases.zsh58
-rw-r--r--.zsh/gitprompt.zsh80
-rw-r--r--.zsh/title.zsh30
m---------.zsh/z0
m---------.zsh/zsh-syntax-highlighting0
5 files changed, 168 insertions, 0 deletions
diff --git a/.zsh/aliases.zsh b/.zsh/aliases.zsh
new file mode 100644
index 00000000..98bbae18
--- /dev/null
+++ b/.zsh/aliases.zsh
@@ -0,0 +1,58 @@
+function reload {
+  source ~/.zshrc
+  rehash
+}
+
+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
new file mode 100644
index 00000000..433481b9
--- /dev/null
+++ b/.zsh/gitprompt.zsh
@@ -0,0 +1,80 @@
+# Ported from http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/
+
+function _gitprompt_update {
+  unset _git_branch
+  unset _git_status
+  unset _git_dirty
+
+  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
+      _git_branch='none'
+    else
+      _git_branch="${arr[1][(w)-1]}"
+    fi
+
+    if [[ $arr[2] =~ 'Your branch is' ]]; then
+      if [[ $arr[2] =~ 'ahead' ]]; then
+        _git_status='ahead'
+      elif [[ $arr[2] =~ 'diverged' ]]; then
+        _git_status='diverged'
+      else
+        _git_status='behind'
+      fi
+    fi
+
+    if [[ ! $st =~ 'nothing' ]]; then
+      _git_dirty=1
+    fi
+  fi
+}
+
+function gitprompt {
+  if [[ -n "$_git_branch" ]]; then
+    local s
+    [[ -z "$1" ]] && s="%{${fg[yellow]}%}"
+
+    if [[ -n "$_git_dirty" ]]; then
+      s+="⚡"
+    else
+      s+=":"
+    fi
+
+    s+="$_git_branch"
+    case "$_git_status" in
+      ahead)
+        s+="↑"
+        ;;
+      diverged)
+        s+="↕"
+        ;;
+      behind)
+        s+="↓"
+        ;;
+    esac
+
+    echo "$s"
+  fi
+}
+
+function _gitprompt_preexec {
+  [[ "$1" =~ "^g" ]] && _git_command=1
+}
+
+function _gitprompt_precmd {
+  if [[ -n "$_git_command" ]]; then
+    _gitprompt_update
+    unset _git_command
+  fi
+}
+
+typeset -ga preexec_functions
+typeset -ga precmd_functions
+typeset -ga chpwd_functions
+
+preexec_functions+='_gitprompt_preexec'
+precmd_functions+='_gitprompt_precmd'
+chpwd_functions+='_gitprompt_update'
diff --git a/.zsh/title.zsh b/.zsh/title.zsh
new file mode 100644
index 00000000..0307b57c
--- /dev/null
+++ b/.zsh/title.zsh
@@ -0,0 +1,30 @@
+function _title {
+  print -Pn "\033]0;$@\a"
+}
+
+function title {
+  if [[ -n "$1" ]]; then
+    _title_custom=1
+    _title $@
+  else
+    unset _title_custom
+    _title_precmd
+  fi
+}
+
+function _title_preexec {
+  [[ -z "$_title_custom" ]] && _title "$1"
+}
+
+unset _title_host
+[[ -n "$SSH_CLIENT" ]] && _title_host='%m:'
+
+function _title_precmd {
+  [[ -z "$_title_custom" ]] && _title '$_title_host%1~'
+}
+
+typeset -ga preexec_functions
+typeset -ga precmd_functions
+
+preexec_functions+='_title_preexec'
+precmd_functions+='_title_precmd'
diff --git a/.zsh/z b/.zsh/z
new file mode 160000
+Subproject dfd4308ae84da481f774b3f5e732ee277d9d876
diff --git a/.zsh/zsh-syntax-highlighting b/.zsh/zsh-syntax-highlighting
new file mode 160000
+Subproject e5d8a50d362a153a28506be6fae9cf179dbb5fd