diff options
Diffstat (limited to '.zsh')
-rw-r--r-- | .zsh/aliases.zsh | 58 | ||||
-rw-r--r-- | .zsh/gitprompt.zsh | 68 | ||||
-rw-r--r-- | .zsh/title.zsh | 12 |
3 files changed, 97 insertions, 41 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' |