New version of zsh startup files:

- Supports Darwin AND Linux
- No more .zshrc.local
- New completion (BETA)
This commit is contained in:
Andrea Mistrali 2010-11-18 08:49:41 +00:00
parent e031a7efc9
commit 5b09568680
16 changed files with 223 additions and 165 deletions

26
zsh.d/00-options Normal file
View File

@ -0,0 +1,26 @@
setopt ALWAYS_TO_END
setopt APPEND_HISTORY
setopt AUTO_CD
setopt ALL_EXPORT
setopt AUTO_MENU
setopt AUTO_LIST
setopt AUTONAMEDIRS
setopt AUTO_PARAM_SLASH
setopt AUTO_REMOVE_SLASH
setopt AUTO_RESUME
# setopt CDABLE_VARS
setopt CORRECT
setopt FUNCTION_ARGZERO
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_NO_STORE
setopt HIST_REDUCE_BLANKS
setopt LIST_TYPES
setopt LONG_LIST_JOBS
# setopt MENU_COMPLETE
# setopt NO_AUTOLIST
setopt NO_BEEP
setopt NOHUP
setopt NOTIFY
setopt PATH_DIRS
setopt SHORT_LOOPS
# vim: set ts=4 sw=4 tw=0 ft=zsh :

24
zsh.d/10-environment Normal file
View File

@ -0,0 +1,24 @@
#######################################################################################
# Variables
## Vars used always
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/sbin:/sbin:$HOME/bin:."
SAVEHIST=500
HISTFILE=~/.history
HISTSIZE=10000
LANG="it_IT.UTF-8"
TZ='Europe/Rome'
MIBS=all
LOGD=/var/log
## If we are not interactive quit
[ -z "$PS1" ] && return
## Vars only for interactive sessions
EDITOR=vi
PYTHONSTARTUP=~/.pythonrc.py
LOGCHECK=30
REPORTTIME=15
WATCH=notme
WATCHFMT="%n %a %l (%m) at %t."
# vim: set ts=4 sw=4 tw=0 ft=zsh :

14
zsh.d/20-bindkeys Normal file
View File

@ -0,0 +1,14 @@
#######################################################################################
# Useful under iTerm
bindkey "-e"
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[3~" delete-char
bindkey "\eOA" history-search-backward
bindkey "\eOB" history-search-forward
bindkey "\e[A" history-search-backward
bindkey "\e[B" history-search-forward
bindkey "\e[5D" backward-word
bindkey "\e[5C" forward-word
bindkey "" vi-backward-kill-word
# vim: set ts=4 sw=4 tw=0 ft=zsh :

19
zsh.d/20-complete Normal file
View File

@ -0,0 +1,19 @@
#######################################################################################
# Start autocomplete
autoload -U compinit; compinit
# autoload -U compsys;
# compctl -g "*(-/)" + -g ".*(-/)" cd
# allow approximate
zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric
# tab completion for PID :D
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*' force-list always
# cd not select parent dir
zstyle ':completion:*:cd:*' ignore-parents parent pwd
# vim: set ts=4 sw=4 tw=0 ft=zsh :

28
zsh.d/30-aliases Normal file
View File

@ -0,0 +1,28 @@
#######################################################################################
# Aliases
alias ls='ls -F --color'
alias la='ls -A'
alias ll='ls -l'
alias dir='ls -l'
alias lla='la -l'
alias killall='killall -v'
alias cls='clear'
alias dc=cd
alias les=less
alias fu='sudo -s $( fc -ln -1)'
alias mkdir='mkdir -p'
alias zap='rm -rf'
alias ftail='tail -f'
alias grep='grep --colour'
alias ns='host -t ns'
alias mx='host -t mx'
alias soa='host -t soa'
alias ptr='host -t ptr'
alias vi="vim "
# vim: set ts=4 sw=4 tw=0 ft=zsh :

22
zsh.d/30-less Normal file
View File

@ -0,0 +1,22 @@
#######################################################################################
# Setup LESS
for lp in lesspipe lesspipe.sh; do
LESSPIPE=`which $lp`
[ $? -eq 0 ] && eval `$LESSPIPE`
done
## make less colourful
LESS_TERMCAP_mb=$'\E[01;34m' # begin blinking
LESS_TERMCAP_md=$'\E[01;36m' # begin bold
LESS_TERMCAP_me=$'\E[0m' # end mode
LESS_TERMCAP_so=$'\E[01;47;34m' # begin standout-mode - info box
LESS_TERMCAP_se=$'\E[0m' # end standout-mode
LESS_TERMCAP_us=$'\E[04;32m' # begin underline
LESS_TERMCAP_ue=$'\E[0m' # end underline
LESS="-c -x4 -R -MM -PMFile\:?f%f:STDIN. ?BSize\:?B%B:Unk.?B\:?pb%pb\%:Unk.?B\:%i/%m"
LESSCHARSET=utf-8
READNULLCMD=/usr/bin/less
PAGER=/usr/bin/less
# vim: set ts=4 sw=4 tw=0 ft=zsh :

11
zsh.d/30-prompt Normal file
View File

@ -0,0 +1,11 @@
#######################################################################################
# Setup PROMPT
if [ ${TERM[0,5]} = "xterm" ] || [ ${TERM} = "rxvt" ]; then
# We are on xterminal
PS1="%{]2;%n@%m:%.%}%{]1; %m:%. %}%B<%l> %~ %#%b "
else
# We are not on xterminal
PS1="%B[%l] %n@%m:%~ %#%b "
fi
# vim: set ts=4 sw=4 tw=0 ft=zsh :

13
zsh.d/30-termcolors Normal file
View File

@ -0,0 +1,13 @@
#######################################################################################
# Colorize terminal
autoload colors zsh/terminfo
if [[ "$terminfo[colors]" -ge 8 ]]; then
colors
fi
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
(( count = $count + 1 ))
done
PR_NO_COLOR="%{$terminfo[sgr0]%}"
# vim: set ts=4 sw=4 tw=0 ft=zsh :

34
zsh.d/90-functions Normal file
View File

@ -0,0 +1,34 @@
#######################################################################################
# Functions
# cdb - Goes to folder by complete path
function cdb { cd `dirname $1` }
# hist - Grep from history
function hist { grep -i $* $HISTFILE }
# hdu - Human readable report of files and directories sizes
# *Same behaviour as du*
function hdu () {
du -k $* | sort -nr | awk '{
# Prepare human readable
if($1>=1024*1024) { size=$1/1024/1024; unit="G" }
else if($1>=1024) { size=$1/1024; unit="M" }
else { size=$1; unit="K" };
format="%10.2f%s";
hsize=sprintf(format,size,unit);
# Remove $1 (size), then removes " " at the start of $0
$1=""; thepath=$0; sub(/^ /,"",thepath);
# Print size and path (directories are bolded)
if ( system("[ -d \""thepath"\" ]") )
printf "%-8s %s\n",hsize,thepath;
else
printf "%-8s \033[1m%s\033[0m/\n",hsize,thepath;
}'
}
# list total size in . directory
function dust () { hdu -s * }
# vim: set ts=4 sw=4 tw=0 ft=zsh :

View File

@ -1,6 +0,0 @@
# Alias for editors on OSX, a bit hard, to be fixed
# alias mvim="vimFunc "
alias mvim="mvim --serverlist && mvim --remote-tab-silent "
# alias vi="mvim "
# vim: set ts=4 sw=4 tw=0 ft=sh :

View File

@ -1,3 +1,4 @@
# Darwin/OSX
# Environment and aliases for OSX
export LSCOLORS="GxgxcxdxCxegedabagacad"
alias aquamacs='open -a Aquamacs\ Emacs'
@ -6,3 +7,5 @@ alias ls='ls -F -G'
alias skill=killall
alias lsrebuild='/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user'
alias ipython='ipython-2.6 '
# vim: set ts=4 sw=4 tw=0 ft=zsh :

View File

@ -1,13 +1,12 @@
# Core Utils
which gcp > /dev/null
if [ $? -eq 0 ]; then
if [ -f /etc/zsh/gdircolors ]; then
eval `gdircolors /etc/zsh/gdircolors`
else
eval `gdircolors`
fi
#alias ls='gls --color -F'
#alias ls='gls --color -F' # OSX ls is better (supports extended attributes)
alias ll='ls -l'
alias la='ls -a'
alias cp='gcp'
@ -16,3 +15,5 @@ if [ $? -eq 0 ]; then
alias du='gdu'
alias df='gdf -a'
fi
# vim: set ts=4 sw=4 tw=0 ft=zsh :

View File

@ -21,3 +21,5 @@ function dsUser {
unset BASE
unset KEYWORD
# vim: set ts=4 sw=4 tw=0 ft=zsh :

View File

@ -1,4 +1,6 @@
# Mac Ports
if [ -f /opt/local/etc/init.sh ]; then
source /opt/local/etc/init.sh
fi
# vim: set ts=4 sw=4 tw=0 ft=sh :
# vim: set ts=4 sw=4 tw=0 ft=zsh :

4
zsh.d/Linux/50-linux Normal file
View File

@ -0,0 +1,4 @@
# Linux
eval `dircolors`
# vim: set ts=4 sw=4 tw=0 ft=zsh :

173
zshrc
View File

@ -5,170 +5,31 @@
# options, key bindings, etc.
#
# Global Order: zshenv, zprofile, zshrc, zlogin
# $Id$
# $HeadURL$
setopt ALWAYS_TO_END
setopt APPEND_HISTORY
setopt AUTO_CD
setopt ALL_EXPORT
setopt AUTO_MENU
setopt AUTO_LIST
setopt AUTONAMEDIRS
setopt AUTO_PARAM_SLASH
setopt AUTO_REMOVE_SLASH
setopt AUTO_RESUME
# setopt CDABLE_VARS
setopt CORRECT
setopt FUNCTION_ARGZERO
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_NO_STORE
setopt HIST_REDUCE_BLANKS
setopt LIST_TYPES
setopt LONG_LIST_JOBS
setopt MENU_COMPLETE
# setopt NO_AUTOLIST
setopt NO_BEEP
setopt NOHUP
setopt NOTIFY
setopt PATH_DIRS
setopt SHORT_LOOPS
umask 002
ulimit -c 0
## Vars used always
#
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/sbin:/sbin:$HOME/bin:."
SAVEHIST=500
HISTFILE=~/.history
HISTSIZE=10000
LANG="it_IT.UTF-8"
TZ='Europe/Rome'
MIBS=all
LOGD=/var/log
KERNEL=`uname -s`
LIBRARY="/Network/Library/zsh.d"
KERNLIB="${LIBRARY}/${KERNEL}"
## If we are not interactive quit
[ -z "$PS1" ] && return
## Vars only for interactive sessions
EDITOR=vi
PYTHONSTARTUP=~/.pythonrc.py
LOGCHECK=30
REPORTTIME=15
WATCH=notme
WATCHFMT="%n %a %l (%m) at %t."
# Functions and aliases
function cdb {
cd `dirname $1`
}
alias ls='ls -F --color'
alias la='ls -A'
alias ll='ls -l'
alias lla='la -l'
alias dir='ls -l'
alias cls='/usr/bin/clear'
alias killall='killall -v'
alias dc=cd
alias les=less
alias mkdir='mkdir -p'
alias zap='rm -rf'
alias ftail='tail -f'
alias grep='grep --colour'
alias ns='host -t ns'
alias mx='host -t mx'
alias soa='host -t soa'
alias ptr='host -t ptr'
alias vi="vim "
# Start autocomplete
autoload -U compinit; compinit
# autoload -U compsys
# compctl -g "*(-/)" + -g ".*(-/)" cd
# Colorize terminal
autoload colors zsh/terminfo
if [[ "$terminfo[colors]" -ge 8 ]]; then
colors
fi
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
(( count = $count + 1 ))
done
PR_NO_COLOR="%{$terminfo[sgr0]%}"
#
# Useful under iTerm
bindkey "-e"
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[3~" delete-char
bindkey "\eOA" history-search-backward
bindkey "\eOB" history-search-forward
bindkey "\e[A" history-search-backward
bindkey "\e[B" history-search-forward
bindkey "\e[5D" backward-word
bindkey "\e[5C" forward-word
bindkey "" vi-backward-kill-word
# Setup PROMPT
if [ ${TERM[0,5]} = "xterm" ] || [ ${TERM} = "rxvt" ]; then
# We are on xterminal
PS1="%{]2;%n@%m:%.%}%{]1; %m:%. %}%B<%l> %~ %#%b "
else
# We are not on xterminal
PS1="%B[%l] %n@%m:%~ %#%b "
fi
# Setup LESS
for lp in lesspipe lesspipe.sh; do
LESSPIPE=`which $lp`
[ $? -eq 0 ] && eval `$LESSPIPE`
done
## make less colourful
LESS_TERMCAP_mb=$'\E[01;34m' # begin blinking
LESS_TERMCAP_md=$'\E[01;36m' # begin bold
LESS_TERMCAP_me=$'\E[0m' # end mode
LESS_TERMCAP_so=$'\E[01;47;34m' # begin standout-mode - info box
LESS_TERMCAP_se=$'\E[0m' # end standout-mode
LESS_TERMCAP_us=$'\E[04;32m' # begin underline
LESS_TERMCAP_ue=$'\E[0m' # end underline
LESS="-c -x4 -R -MM -PMFile\:?f%f:STDIN. ?BSize\:?B%B:Unk.?B\:?pb%pb\%:Unk.?B\:%i/%m"
LESSCHARSET=utf-8
READNULLCMD=/usr/bin/less
PAGER=/usr/bin/less
# Platform specific customizations
# Linux
if [ `uname -s` = "Linux" ]; then
eval `dircolors`
fi
# Darwin/OSX
# if [ `uname -s` = "Darwin" ]; then
if [ -d /Network/Library/zsh.d ]; then
for zshFile in /Network/Library/zsh.d/*; do
function loadRC {
if [ -d $1 ]; then
for zshFile in $1/*; do
. $zshFile
done
fi
fi
unset zshFile
}
# Host specific customizations
loadRC ${LIBRARY}
loadRC ${KERNLIB}
unset KERNEL
unset LIBRARY
unset KERNLIB
# Local (per Host) customizations
for localDir in /etc/zsh /etc /usr/local/etc /usr/local/etc/zsh; do
if [ -f ${localDir}/zshrc.local ]; then
. ${localDir}/zshrc.local
fi
done
unset localDir
# User specific customizations
if [ -f ~/.zshrc.user ]; then
. ~/.zshrc.user
fi