diff --git a/zsh.d/00-options b/zsh.d/00-options new file mode 100644 index 0000000..e0c0069 --- /dev/null +++ b/zsh.d/00-options @@ -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 : diff --git a/zsh.d/10-environment b/zsh.d/10-environment new file mode 100644 index 0000000..adf04cf --- /dev/null +++ b/zsh.d/10-environment @@ -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 : diff --git a/zsh.d/20-bindkeys b/zsh.d/20-bindkeys new file mode 100644 index 0000000..adf6850 --- /dev/null +++ b/zsh.d/20-bindkeys @@ -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 : diff --git a/zsh.d/20-complete b/zsh.d/20-complete new file mode 100644 index 0000000..0d46cd3 --- /dev/null +++ b/zsh.d/20-complete @@ -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 : diff --git a/zsh.d/30-aliases b/zsh.d/30-aliases new file mode 100644 index 0000000..4851b08 --- /dev/null +++ b/zsh.d/30-aliases @@ -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 : diff --git a/zsh.d/30-less b/zsh.d/30-less new file mode 100644 index 0000000..c06edbc --- /dev/null +++ b/zsh.d/30-less @@ -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 : diff --git a/zsh.d/30-prompt b/zsh.d/30-prompt new file mode 100644 index 0000000..29a1f20 --- /dev/null +++ b/zsh.d/30-prompt @@ -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 : diff --git a/zsh.d/30-termcolors b/zsh.d/30-termcolors new file mode 100644 index 0000000..bdfc86a --- /dev/null +++ b/zsh.d/30-termcolors @@ -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 : diff --git a/zsh.d/90-functions b/zsh.d/90-functions new file mode 100644 index 0000000..b39fa6f --- /dev/null +++ b/zsh.d/90-functions @@ -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 : diff --git a/zsh.d/90-vimFunc b/zsh.d/90-vimFunc deleted file mode 100644 index cf4ae0c..0000000 --- a/zsh.d/90-vimFunc +++ /dev/null @@ -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 : diff --git a/zsh.d/10-darwinEnvironment b/zsh.d/Darwin/50-darwin similarity index 88% rename from zsh.d/10-darwinEnvironment rename to zsh.d/Darwin/50-darwin index a0210da..7bdff49 100644 --- a/zsh.d/10-darwinEnvironment +++ b/zsh.d/Darwin/50-darwin @@ -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 : diff --git a/zsh.d/30-gnucoreutils b/zsh.d/Darwin/90-coreutilsDarwin similarity index 70% rename from zsh.d/30-gnucoreutils rename to zsh.d/Darwin/90-coreutilsDarwin index 05acce9..8514404 100644 --- a/zsh.d/30-gnucoreutils +++ b/zsh.d/Darwin/90-coreutilsDarwin @@ -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 : diff --git a/zsh.d/30-dsFunctions b/zsh.d/Darwin/90-dsFunctions similarity index 93% rename from zsh.d/30-dsFunctions rename to zsh.d/Darwin/90-dsFunctions index 7b9e8e2..cd6be69 100644 --- a/zsh.d/30-dsFunctions +++ b/zsh.d/Darwin/90-dsFunctions @@ -21,3 +21,5 @@ function dsUser { unset BASE unset KEYWORD + +# vim: set ts=4 sw=4 tw=0 ft=zsh : diff --git a/zsh.d/20-macPorts b/zsh.d/Darwin/90-macportsDarwin similarity index 60% rename from zsh.d/20-macPorts rename to zsh.d/Darwin/90-macportsDarwin index 20f198a..31f2bc9 100644 --- a/zsh.d/20-macPorts +++ b/zsh.d/Darwin/90-macportsDarwin @@ -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 : diff --git a/zsh.d/Linux/50-linux b/zsh.d/Linux/50-linux new file mode 100644 index 0000000..e778ca4 --- /dev/null +++ b/zsh.d/Linux/50-linux @@ -0,0 +1,4 @@ +# Linux +eval `dircolors` + +# vim: set ts=4 sw=4 tw=0 ft=zsh : diff --git a/zshrc b/zshrc index 866be82..b3bd6da 100644 --- a/zshrc +++ b/zshrc @@ -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` +function loadRC { + if [ -d $1 ]; then + for zshFile in $1/*; do + . $zshFile + done + fi + unset zshFile } -alias ls='ls -F --color' -alias la='ls -A' -alias ll='ls -l' -alias lla='la -l' -alias dir='ls -l' +loadRC ${LIBRARY} +loadRC ${KERNLIB} -alias cls='/usr/bin/clear' +unset KERNEL +unset LIBRARY +unset KERNLIB -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 - . $zshFile - done -fi - -# Host specific customizations +# 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