-
-
Save thefron/8573503 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Path to your oh-my-zsh configuration. | |
ZSH=$HOME/.oh-my-zsh | |
# Set name of the theme to load. | |
# Look in ~/.oh-my-zsh/themes/ | |
# Optionally, if you set this to "random", it'll load a random theme each | |
# time that oh-my-zsh is loaded. | |
ZSH_THEME="robbyrussell" | |
# Example aliases | |
# alias zshconfig="mate ~/.zshrc" | |
# alias ohmyzsh="mate ~/.oh-my-zsh" | |
# Set to this to use case-sensitive completion | |
# CASE_SENSITIVE="true" | |
# Comment this out to disable bi-weekly auto-update checks | |
# DISABLE_AUTO_UPDATE="true" | |
# Uncomment to change how many often would you like to wait before auto-updates occur? (in days) | |
# export UPDATE_ZSH_DAYS=13 | |
# Uncomment following line if you want to disable colors in ls | |
# DISABLE_LS_COLORS="true" | |
# Uncomment following line if you want to disable autosetting terminal title. | |
# DISABLE_AUTO_TITLE="true" | |
# Uncomment following line if you want red dots to be displayed while waiting for completion | |
# COMPLETION_WAITING_DOTS="true" | |
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) | |
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ | |
# Example format: plugins=(rails git textmate ruby lighthouse) | |
plugins=(sublime bundler ruby gitfast brew cloudapp capistrano github osx rake rails rbenv ssh-agent terminalapp) | |
source $ZSH/oh-my-zsh.sh | |
# Customize to your needs... | |
export PATH=/usr/local/heroku/bin:$HOME/.rbenv/bin:$PATH | |
#{{{ ZSH Modules | |
autoload -U compinit promptinit zcalc zsh-mime-setup | |
compinit | |
promptinit | |
zsh-mime-setup | |
#}}} | |
#{{{ Options | |
# why would you type 'cd dir' if you could just type 'dir'? | |
setopt AUTO_CD | |
# Now we can pipe to multiple outputs! | |
setopt MULTIOS | |
# Spell check commands! (Sometimes annoying) | |
setopt CORRECT | |
# This makes cd=pushd | |
setopt AUTO_PUSHD | |
# This will use named dirs when possible | |
setopt AUTO_NAME_DIRS | |
# If we have a glob this will expand it | |
setopt GLOB_COMPLETE | |
setopt PUSHD_MINUS | |
# No more annoying pushd messages... | |
# setopt PUSHD_SILENT | |
# blank pushd goes to home | |
setopt PUSHD_TO_HOME | |
# this will ignore multiple directories for the stack. Useful? I dunno. | |
setopt PUSHD_IGNORE_DUPS | |
# 10 second wait if you do something that will delete everything. I wish I'd had this before... | |
setopt RM_STAR_WAIT | |
# use magic (this is default, but it can't hurt!) | |
setopt ZLE | |
setopt NO_HUP | |
# only fools wouldn't do this ;-) | |
export EDITOR="subl -n -w" | |
setopt IGNORE_EOF | |
# If I could disable Ctrl-s completely I would! | |
setopt NO_FLOW_CONTROL | |
# Keep echo "station" > station from clobbering station | |
setopt NO_CLOBBER | |
# Case insensitive globbing | |
setopt NO_CASE_GLOB | |
# Be Reasonable! | |
setopt NUMERIC_GLOB_SORT | |
# I don't know why I never set this before. | |
setopt EXTENDED_GLOB | |
# hows about arrays be awesome? (that is, frew${cool}frew has frew surrounding all the variables, not just first and last | |
setopt RC_EXPAND_PARAM | |
#}}} | |
#{{{ Completion Stuff | |
bindkey -M viins '\C-i' complete-word | |
# Faster! (?) | |
zstyle ':completion::complete:*' use-cache 1 | |
# case insensitive completion | |
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' | |
zstyle ':completion:*' verbose yes | |
zstyle ':completion:*:descriptions' format '%B%d%b' | |
zstyle ':completion:*:messages' format '%d' | |
zstyle ':completion:*:warnings' format 'No matches for: %d' | |
zstyle ':completion:*' group-name '' | |
#zstyle ':completion:*' completer _oldlist _expand _force_rehash _complete | |
zstyle ':completion:*' completer _expand _force_rehash _complete _approximate _ignored | |
# generate descriptions with magic. | |
zstyle ':completion:*' auto-description 'specify: %d' | |
# Don't prompt for a huge list, page it! | |
zstyle ':completion:*:default' list-prompt '%S%M matches%s' | |
# Don't prompt for a huge list, menu it! | |
zstyle ':completion:*:default' menu 'select=0' | |
# Have the newer files last so I see them first | |
zstyle ':completion:*' file-sort modification reverse | |
# color code completion!!!! Wohoo! | |
zstyle ':completion:*' list-colors "=(#b) #([0-9]#)*=36=31" | |
unsetopt LIST_AMBIGUOUS | |
setopt COMPLETE_IN_WORD | |
# Separate man page sections. Neat. | |
zstyle ':completion:*:manuals' separate-sections true | |
# complete with a menu for xwindow ids | |
zstyle ':completion:*:windows' menu on=0 | |
zstyle ':completion:*:expand:*' tag-order all-expansions | |
# more errors allowed for large words and fewer for small words | |
zstyle ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) )' | |
# Errors format | |
zstyle ':completion:*:corrections' format '%B%d (errors %e)%b' | |
# Don't complete stuff already on the line | |
zstyle ':completion::*:(rm|vi):*' ignore-line true | |
# Don't complete directory we are already in (../here) | |
zstyle ':completion:*' ignore-parents parent pwd | |
zstyle ':completion::approximate*:*' prefix-needed false | |
#}}} | |
#{{{ Key bindings | |
# Who doesn't want home and end to work? | |
bindkey '\e[1~' beginning-of-line | |
bindkey '\e[4~' end-of-line | |
# Incremental search is elite! | |
bindkey -M vicmd "/" history-incremental-search-backward | |
bindkey -M vicmd "?" history-incremental-search-forward | |
# Search based on what you typed in already | |
bindkey -M vicmd "//" history-beginning-search-backward | |
bindkey -M vicmd "??" history-beginning-search-forward | |
bindkey "\eOP" run-help | |
# oh wow! This is killer... try it! | |
bindkey -M vicmd "q" push-line | |
# Ensure that arrow keys work as they should | |
bindkey '\e[A' up-line-or-history | |
bindkey '\e[B' down-line-or-history | |
bindkey '\eOA' up-line-or-history | |
bindkey '\eOB' down-line-or-history | |
bindkey '\e[C' forward-char | |
bindkey '\e[D' backward-char | |
bindkey '\eOC' forward-char | |
bindkey '\eOD' backward-char | |
bindkey -M viins 'jj' vi-cmd-mode | |
bindkey -M vicmd 'u' undo | |
# Rebind the insert key. I really can't stand what it currently does. | |
bindkey '\e[2~' overwrite-mode | |
# Rebind the delete key. Again, useless. | |
bindkey '\e[3~' delete-char | |
bindkey -M vicmd '!' edit-command-output | |
# it's like, space AND completion. Gnarlbot. | |
bindkey -M viins ' ' magic-space | |
#}}} | |
#{{{ History Stuff | |
# Where it gets saved | |
HISTFILE=~/.history | |
# Remember about a years worth of history (AWESOME) | |
SAVEHIST=10000 | |
HISTSIZE=10000 | |
# Don't overwrite, append! | |
setopt APPEND_HISTORY | |
# Write after each command | |
# setopt INC_APPEND_HISTORY | |
# Killer: share history between multiple shells | |
setopt SHARE_HISTORY | |
# If I type cd and then cd again, only save the last one | |
setopt HIST_IGNORE_DUPS | |
# Even if there are commands inbetween commands that are the same, still only save the last one | |
setopt HIST_IGNORE_ALL_DUPS | |
# Pretty Obvious. Right? | |
setopt HIST_REDUCE_BLANKS | |
# If a line starts with a space, don't save it. | |
setopt HIST_IGNORE_SPACE | |
setopt HIST_NO_STORE | |
# When using a hist thing, make a newline show the change before executing it. | |
setopt HIST_VERIFY | |
# Save the time and how long a command ran | |
setopt EXTENDED_HISTORY | |
setopt HIST_SAVE_NO_DUPS | |
setopt HIST_EXPIRE_DUPS_FIRST | |
setopt HIST_FIND_NO_DUPS | |
#}}} | |
_force_rehash() { | |
(( CURRENT == 1 )) && rehash | |
return 1 # Because we didn't really complete anything | |
} | |
#}}} | |
#{{{ ZSH Modules | |
autoload -U compinit promptinit zcalc zsh-mime-setup | |
compinit | |
promptinit | |
zsh-mime-setup | |
#}}} | |
alias rake="noglob rake" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment