add zshrc

This commit is contained in:
Armin 2015-01-31 00:49:31 +01:00
commit 26903c3d24
3 changed files with 182 additions and 126 deletions

View file

@ -1,73 +0,0 @@
A handful of functions, auto-complete helpers, and stuff that makes you shout...
bq. "OH MY ZSHELL!"
h2. Setup
@oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9.
h3. The automatic installer... (do you trust me?)
@wget http://github.com/sjl/oh-my-zsh/raw/master/tools/install.sh -O - | sh@
h3. The manual way
1. Clone the repository
@git clone git://github.com/sjl/oh-my-zsh.git ~/.oh-my-zsh@
2. Create a new zsh config by copying the zsh template we've provided.
*NOTE*: If you already have a ~/.zshrc file, you should back it up. @cp ~/.zshrc ~/.zshrc.orig@ in case you want to go back to your original settings.
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
3. Set zsh as your default shell:
@chsh -s /bin/zsh@
4. Start / restart zsh (open a new terminal is easy enough...)
h3. Problems?
You _might_ need to modify your PATH in ~/.zshrc if you're not able to find some commands after switching to _Oh My Zsh_.
h2. Usage
* enable the plugins you want in your @~/.zshrc@ (take a look at @plugins/@ to see what's possible)
** example: @plugins=(git osx ruby)@
* Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@.
** Take a look at the "current themes":http://wiki.github.com/sjl/oh-my-zsh/themes that come bundled with _Oh My Zsh_.
* much much more... take a look at @lib/@ what _Oh My Zsh_ offers...
h2. Useful
the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty for tips.
h3. Customization
If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory.
If you have many functions which go good together you can put them as a *.plugin.zsh file in the @custom/plugins/@ directory and then enable this plugin.
If you would like to override the functionality of a plugin distributed with oh-my-zsh, create a plugin of the same name in the @custom/plugins/@ directory and it will be loaded instead of the one in @plugins/@.
h3. Uninstalling
If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config).
h2. Help out!
I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
h3. Send us your theme!
I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.
h2. Contributors
This project wouldn't exist without all of our awesome users and contributors.
* "View our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors
Thank you so much!

View file

@ -1,53 +0,0 @@
# Check for updates on initial load...
if [ "$DISABLE_AUTO_UPDATE" != "true" ]
then
/usr/bin/env zsh $ZSH/tools/check_for_upgrade.sh
fi
# Initializes Oh My Zsh
# add a function path
fpath=($ZSH/functions $ZSH/completions $fpath)
# Load all of the config files in ~/oh-my-zsh that end in .zsh
# TIP: Add files you don't want in git to .gitignore
for config_file ($ZSH/lib/*.zsh) source $config_file
# Add all defined plugins to fpath
plugin=${plugin:=()}
for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath)
# Load and run compinit
autoload -U compinit
compinit -i
# Load all of the plugins that were defined in ~/.zshrc
for plugin ($plugins); do
if [ -f $ZSH/custom/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH/custom/plugins/$plugin/$plugin.plugin.zsh
elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH/plugins/$plugin/$plugin.plugin.zsh
fi
done
# Load all of your custom configurations from custom/
if [ -d "$ZSH/custom" ]; then
for config_file ($ZSH/custom/*.zsh) source $config_file
fi
# Load the theme
if [ "$ZSH_THEME" = "random" ]
then
themes=($ZSH/themes/*zsh-theme)
N=${#themes[@]}
((N=(RANDOM%N)+1))
RANDOM_THEME=${themes[$N]}
source "$RANDOM_THEME"
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
else
if [ ! "$ZSH_THEME" = "" ]
then
source "$ZSH/themes/$ZSH_THEME.zsh-theme"
fi
fi

182
zshrc Normal file
View file

@ -0,0 +1,182 @@
# ezzsh - zshrc
# path to your zsh configuration.
ZSH="$HOME/.zsh"
# export ZSH_THEME="random"
# export ZSH_THEME="ezzsh" # name of zsh theme
export ZSH_THEME="powerline" # name of zsh theme
# Set this to true to use case-sensitive completion
CASE_SENSITIVE="false" # bool
# Comment this out to disable weekly auto-update checks
DISABLE_AUTO_UPDATE="true" # bool
# Uncomment following line if you want to disable colors in ls
DISABLE_LS_COLORS="false" # bool
# Uncomment following line if you want to disable autosetting terminal title.
DISABLE_AUTO_TITLE="false" # bool
# Uncomment following line if you want disable red dots displayed while waiting for completion
DISABLE_COMPLETION_WAITING_DOTS="true" # bool
# plugins to load (array)
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git)
# Customize to your needs...
source $ZSH/zsh
# workaround for broken xfce4 terminal to force $TERM:
if [[ "$COLORTERM" == "xfce4-terminal" ]]; then
export TERM="xterm-256color"
fi
# workaround for rxvt
if [[ "$COLORTERM" == "rxvt-xpm" ]]; then
export TERM="rxvt-unicode-256color"
fi
# set $OS_TYPE to "osx" / "linux":
if [[ "$(uname)" == "Darwin" ]]; then
export OS_TYPE="osx"
else
export OS_TYPE="linux"
fi
# $ZSH - Path to your zsh installation.
export ZSH=$HOME/.zsh/
export PATH=$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin$PATH
# set $EDITOR
export EDITOR='vim'
# man pages: color
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;33m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
# zsh fix for ssh host completion from ~/.ssh/config
[ -f ~/.ssh/config ] && : ${(A)ssh_config_hosts:=${${${${(@M)${(f)"$(<~/.ssh/config)"}:#Host *}#Host }:#*\**}:#*\?*}}
# needed to keep backgrounded jobs running when exiting zsh:
setopt NO_HUP
# homebrew
# githup api token, in the format, example:
# > export HOMEBREW_GITHUB_API_TOKEN=XXXXX
if [[ -e ~/.homebrew-github-api-token ]]; then
source ~/.homebrew-github-api-token
fi
# mosh setup
# export MOSH_TITLE_NOPREFIX=1
# jump/mark/unmark/marks stuff (make sure to load the "jump" plugin in plugins=() )
function _completemarks {
reply=($(ls $MARKPATH))
}
compctl -K _completemarks jump
compctl -K _completemarks unmark
# force english locales
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_PAPER="en_US.UTF-8"
export LC_NAME="en_US.UTF-8"
export LC_ADDRESS="en_US.UTF-8"
export LC_TELEPHONE="en_US.UTF-8"
export LC_MEASUREMENT="en_US.UTF-8"
export LC_IDENTIFICATION="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
# set ls options
LS_OPTIONS="--color=auto --group-directories-first -F"
alias ls="ls $LS_OPTIONS"
alias l="ls $LS_OPTIONS -al"
# Mac OS X specific stuff:
if [[ "$OS_TYPE" == "osx" ]]; then
# preceed path with homebrew stuff:
export PATH="/usr/local/sbin:/usr/local/bin:$PATH"
# ipython on mac:
alias ipython='/Users/armin/git/ipython/bin/ipython'
# homebrew verbosity / emoji icon removal:
export HOMEBREW_VERBOSE=1
export HOMEBREW_CURL_VERBOSE=1
export HOMEBREW_NO_EMOJI=1
# let's use ls from gnu utils because the bsd ls doesn't know long options:
if hash gls; then
LS_COMMAND="gls"
else
LS_COMMAND="ls"
fi
# homebrew verbose and without annoying emoji icon:
export HOMEBREW_VERBOSE=1
export HOMEBREW_CURL_VERBOSE=1
export HOMEBREW_NO_EMOJI=1
# let's use dircolors from gnu utils because the osx version is buggy:
alias dircolors="gdircolors"
# Linux specific stuff
else
LS_COMMAND="ls"
fi
# enable ls colorization:
if [ "$TERM" != "dumb" ]; then
eval "$(dircolors "$ZSH"/dircolors)"
alias ls="$LS_COMMAND $LS_OPTIONS"
fi
# set $SHELL:
export SHELL="$(which zsh)"
# keychain stuff
if [[ "$OS_TYPE" == "linux" ]]; then
ssh_cmd="$(which ssh)"
function ssh () {
echo "$@" >> $HOME/.keychain-args
echo "$(date)" > $HOME/.keychain-output
# using keychain for gpg made problems, so we only use the id_rsa SSH key here:
# keychain id_rsa 44248BA0
keychain id_rsa >> $HOME/.keychain-output 2>&1
[ -z "$HOSTNAME" ] && HOSTNAME=`uname -n`
[ -f $HOME/.keychain/$HOSTNAME-sh ] && \
. $HOME/.keychain/$HOSTNAME-sh
[ -f $HOME/.keychain/$HOSTNAME-sh-gpg ] && \
. $HOME/.keychain/$HOSTNAME-sh-gpg
"$ssh_cmd" "$@"
}
fi
# grep with color
alias grep='grep --color=auto'
# enable ls colorization:
if [ "$TERM" != "dumb" ]; then
eval "$(dircolors "$ZSH"/dircolors)"
alias ls="$LS_COMMAND $LS_OPTIONS"
fi
# do not autocorrect sudo commands (fixes "zsh: correct 'vim' to '.vim' [nyae]?")
# alias sudo='nocorrect sudo'
# or, the more brutal attempt:
unsetopt correct{,all}
alias sd='ssh deep'