diff options
Diffstat (limited to '')
-rw-r--r-- | .zsh/aliases.zsh | 58 | ||||
-rw-r--r-- | .zsh/gitprompt.zsh | 80 | ||||
-rw-r--r-- | .zsh/title.zsh | 30 | ||||
m--------- | .zsh/z | 0 | ||||
m--------- | .zsh/zsh-syntax-highlighting | 0 | ||||
-rw-r--r-- | .zshrc | 67 |
6 files changed, 235 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 diff --git a/.zshrc b/.zshrc new file mode 100644 index 00000000..36fa2e01 --- /dev/null +++ b/.zshrc @@ -0,0 +1,67 @@ +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 + +# Colors +autoload colors zsh/terminfo +colors + +[[ -n "$COLORTERM" ]] && export TERM='xterm-256color' + +# Libs + +source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets) +ZSH_HIGHLIGHT_STYLES[builtin]='none' +ZSH_HIGHLIGHT_STYLES[command]='bold' +ZSH_HIGHLIGHT_STYLES[precommand]='fg=yellow,bold' +ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' +ZSH_HIGHLIGHT_STYLES[function]='fg=magenta,bold' +ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='bold' +ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='bold' +ZSH_HIGHLIGHT_STYLES[globbing]='fg=blue,bold' +ZSH_HIGHLIGHT_STYLES[path]='none' +ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue,bold' +ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=cyan,bold' +ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan,bold' +ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan,bold' + +source ~/.zsh/z/z.sh + +if [[ -d /usr/share/chruby ]]; then + source /usr/share/chruby/chruby.sh + source /usr/share/chruby/auto.sh + chruby 'ruby-2.0.0' +fi + +[[ -s ~/.nvm/nvm.sh ]] && source ~/.nvm/nvm.sh + +[[ -f /usr/local/heroku ]] && export PATH="/usr/local/heroku/bin:$PATH" + +source ~/.zsh/gitprompt.zsh +source ~/.zsh/title.zsh + +source ~/.zsh/aliases.zsh + +# Environment + +EDITOR=vim + +# Prompt + +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]%})" |