X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=zsh_people%2Fgrml%2Fzshrc;fp=zsh_people%2Fgrml%2Fzshrc;h=0000000000000000000000000000000000000000;hb=5cb88f9fb34ecec3c6fdf321e4f5842da0102ef1;hp=e1b5441930ea600de6b27f968803b28b11953f83;hpb=570683afd3efabdf224dbc2fcebf9467a3653638;p=zsh-lovers.git diff --git a/zsh_people/grml/zshrc b/zsh_people/grml/zshrc deleted file mode 100644 index e1b5441..0000000 --- a/zsh_people/grml/zshrc +++ /dev/null @@ -1,496 +0,0 @@ -# Frlename: zshrc -# Purpose: config file for zsh (z shell) -# Authors: grml-team (grml.org), (c) Michael Prokop -# Bug-Reports: see http://grml.org/bugs/ -# License: This file is licensed under the GPL v2. -# Latest change: Die Mai 31 15:28:47 CEST 2005 [mika] -################################################################################ -# This file is sourced only for interactive shells. It -# should contain commands to set up aliases, functions, -# options, key bindings, etc. -# -# Global Order: zshenv, zprofile, zshrc, zlogin -################################################################################ - -# {{{ check for version/system -# check for versions (compatibility reasons) - is4(){ - if [[ $ZSH_VERSION == 4.* ]]; then - return 0 - else - return 1 - fi - } - -# current release - is42(){ - if [[ $ZSH_VERSION == 4.<2->* ]]; then - return 0 - else - return 1 - fi - } - -# grml specific stuff - isgrml(){ - if [ -f /etc/grml_version ] ; then - return 0 - else - return 1 - fi - } - - isgrmlcd(){ - if [ -f /etc/grml_cd ] ; then - return 0 - else - return 1 - fi - } - -# change directory to home on first invocation of zsh -# important for rungetty -> autologin -# Thanks go to Bart Schaefer! - isgrml && checkhome() { - if [[ -z "$ALREADY_DID_CD_HOME" ]]; then - export ALREADY_DID_CD_HOME=$HOME - cd - fi - } -# }}} - -# {{{ set some variables - [[ -z "$EDITOR" ]] && EDITOR='vim' - [[ -z "$SHELL" ]] && SHELL='/bin/zsh' - [[ -f ~/.terminfo/m/mostlike ]] && MYLESS='LESS=C TERMINFO=~/.terminfo TERM=mostlike less' || MYLESS='less' - eval `dircolors -b` - -# Search path for the cd comman -# cdpath=(.. ~) - -# automatically remove duplicates from these arrays - typeset -U path cdpath fpath manpath -# }}} - -# {{{ keybindings -if [[ "$TERM" != emacs ]]; then - [[ -z "$terminfo[kdch1]" ]] || bindkey -M emacs "$terminfo[kdch1]" delete-char - [[ -z "$terminfo[khome]" ]] || bindkey -M emacs "$terminfo[khome]" beginning-of-line - [[ -z "$terminfo[kend]" ]] || bindkey -M emacs "$terminfo[kend]" end-of-line - [[ -z "$terminfo[kdch1]" ]] || bindkey -M vicmd "$terminfo[kdch1]" vi-delete-char - [[ -z "$terminfo[khome]" ]] || bindkey -M vicmd "$terminfo[khome]" vi-beginning-of-line - [[ -z "$terminfo[kend]" ]] || bindkey -M vicmd "$terminfo[kend]" vi-end-of-line - - [[ -z "$terminfo[cuu1]" ]] || bindkey -M viins "$terminfo[cuu1]" vi-up-line-or-history - [[ -z "$terminfo[cuf1]" ]] || bindkey -M viins "$terminfo[cuf1]" vi-forward-char - [[ -z "$terminfo[kcuu1]" ]] || bindkey -M viins "$terminfo[kcuu1]" vi-up-line-or-history - [[ -z "$terminfo[kcud1]" ]] || bindkey -M viins "$terminfo[kcud1]" vi-down-line-or-history - [[ -z "$terminfo[kcuf1]" ]] || bindkey -M viins "$terminfo[kcuf1]" vi-forward-char - [[ -z "$terminfo[kcub1]" ]] || bindkey -M viins "$terminfo[kcub1]" vi-backward-char - -# ncurses fogyatekos - [[ "$terminfo[kcuu1]" == "O"* ]] && bindkey -M viins "${terminfo[kcuu1]/O/[}" vi-up-line-or-history - [[ "$terminfo[kcud1]" == "O"* ]] && bindkey -M viins "${terminfo[kcud1]/O/[}" vi-down-line-or-history - [[ "$terminfo[kcuf1]" == "O"* ]] && bindkey -M viins "${terminfo[kcuf1]/O/[}" vi-forward-char - [[ "$terminfo[kcub1]" == "O"* ]] && bindkey -M viins "${terminfo[kcub1]/O/[}" vi-backward-char - [[ "$terminfo[khome]" == "O"* ]] && bindkey -M viins "${terminfo[khome]/O/[}" beginning-of-line - [[ "$terminfo[kend]" == "O"* ]] && bindkey -M viins "${terminfo[kend]/O/[}" end-of-line - [[ "$terminfo[khome]" == "O"* ]] && bindkey -M emacs "${terminfo[khome]/O/[}" beginning-of-line - [[ "$terminfo[kend]" == "O"* ]] && bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line -fi - -## keybindings (run 'bindkeys' for details, more details via man zshzle) -# use emacs style per default - bindkey -e -# use vi style: -# bindkey -v - -#if [[ "$TERM" == screen ]]; then - bindkey '\e[1~' beginning-of-line # home - bindkey '\e[4~' end-of-line # end - bindkey "^[[A" up-line-or-search # cursor up - bindkey "^[[B" down-line-or-search # - - bindkey '^x' history-beginning-search-backward -#fi -# bindkey '\eq' push-line-or-edit -# }}} - -# {{{ autoloading - autoload -U zmv # who needs mmv or rename? - autoload history-search-end - - alias run-help >&/dev/null && unalias run-help - autoload run-help # use via 'esc-h' - - is4 && autoload -U compinit && compinit # completition system - is4 && autoload -U zed # use ZLE editor to edit a file or function - - is4 && zmodload -i zsh/complist - is4 && zmodload -i zsh/deltochar - is4 && zmodload -i zsh/mathfunc -# Autoload zsh modules when they are referenced - is4 && zmodload -a zsh/stat stat - is4 && zmodload -a zsh/zpty zpty - is4 && zmodload -a zsh/zprof zprof - is4 && zmodload -ap zsh/mapfile mapfile - - is4 && autoload -U insert-files && \ - zle -N insert-files && \ - bindkey "^Xf" insert-files # C-x-f - - bindkey ' ' magic-space # also do history expansion on space - -# press Esc-e for editing command line in $EDITOR or $VISUAL - is4 && autoload -U edit-command-line && \ - zle -N edit-command-line && \ - bindkey '\ee' edit-command-line - -# press Esc-m for inserting last typed word again (thanks to caphuso!) - insert-last-typed-word() { zle insert-last-word -- 0 -1 }; \ - zle -N insert-last-typed-word; bindkey "\em" insert-last-typed-word - -# set command prediction from history, see 'man 1 zshcontrib' - is4 && autoload -U predict-on && \ - zle -N predict-on && \ - zle -N predict-off && \ - bindkey "^X^Z" predict-on && \ - bindkey "^Z" predict-off -# }}} - -# {{{ set some important options - umask 022 - -# history: - setopt append_history # append history list to the history file (important for multiple parallel zsh sessions!) - is4 && setopt SHARE_HISTORY # import new commands from the history file also in other zsh-session - setopt extended_history # save each command's beginning timestamp and the duration to the history file - is4 && setopt histignorealldups # If a new command line being added to the history - # list duplicates an older one, the older command is removed from the list - setopt histignorespace # remove command lines from the history list when - # the first character on the line is a space - setopt histallowclobber # add `|' to output redirections in the history - - setopt auto_cd # if a command is issued that can't be executed as a normal command, - # and the command is the name of a directory, perform the cd command to that directory - setopt correct # try to correct the spelling if possible - setopt extended_glob # in order to use #, ~ and ^ for filename generation - # grep word *~(*.gz|*.bz|*.bz2|*.zip|*.Z) -> - # -> searches for word not in compressed files - # don't forget to quote '^', '~' and '#'! - setopt NO_clobber # warning if file exists ('cat /dev/null > ~/.zshrc') - setopt notify # report the status of backgrounds jobs immediately - setopt hash_list_all # Whenever a command completion is attempted, make sure \ - # the entire command path is hashed first. - setopt completeinword # not just at the end -# setopt nocheckjobs # don't warn me about bg processes when exiting - setopt nohup # and don't kill them, either -# setopt printexitvalue # alert me if something failed -# setopt dvorak # with spelling correction, assume dvorak kb - - MAILCHECK=30 # mailchecks - REPORTTIME=5 # report about cpu-/system-/user-time of command if running longer than 5 secondes - watch=(notme root) # watch for everyone but me and root -# }}} - -# {{{ history - export ZSHDIR=$HOME/.zsh - HISTFILE="$HOME/.zsh_history" - HISTSIZE=500 - SAVEHIST=1000 # useful for setopt append_history -# }}} - -# {{{ set prompt - #precmd () { setopt promptsubst; [[ -o interactive ]] && jobs -l; - is4 && precmd () { - RPROMPT="%(?..:()% ${SCREENTITLE}" - } - - is4 && preexec () { - # set screen window title if running in a screen - # get the name of the program currently running - if [[ "$TERM" == screen* ]]; then - local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} - echo -ne "\ek$CMD\e\\" - fi - # set the screen title to "zsh" when sitting at a command prompt: - if [[ "$TERM" == screen* ]]; then - SCREENTITLE=$'%{\ekzsh\e\\%}' - else - SCREENTITLE='' - fi - } - - EXITCODE="%(?..%?%1v )" - local BLUE="%{%}" - local RED="%{%}" - local GREEN="%{%}" - local CYAN="%{%}" - local NO_COLOUR="%{%}" - PS2='`%_> ' # secondary prompt, printed when the shell needs more information to complete a command. - PS3='?# ' # selection prompt used within a select loop. - PS4='+%N:%i:%_> ' # the execution trace prompt (setopt xtrace). default: '+%N:%i>' - -# only if $GRMLPROMPT is set (e.g. via GRMLPROMPT='1') use the extended prompt - if ! [[ -z "$GRMLPROMPT" ]]; then - PROMPT="${RED}${EXITCODE}${CYAN}[%j running job(s)] ${GREEN}{history#%!} ${RED}%(3L.+.) ${BLUE}%* %D -${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# " - else - if (( EUID != 0 )); then - PROMPT="${RED}${EXITCODE}${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# " # primary prompt string - else - PROMPT="${BLUE}${EXITCODE}${RED}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# " # primary prompt string - fi - fi -# }}} - -# {{{ 'hash' some often used directories - hash -d deb=/var/cache/apt/archives - hash -d doc=/usr/share/doc - hash -d linux=/lib/modules/$(command uname -r)/build/ - hash -d log=/var/log - hash -d slog=/var/log/syslog - hash -d src=/usr/src - hash -d templ=/usr/share/doc/grml-templates - hash -d tt=/usr/share/doc/texttools-doc - hash -d www=/var/www -# }}} - -# {{{ some aliases - alias la="ls -la --color=auto" - alias ll="ls -l --color=auto" - alias l="ls -lF --color=auto" - alias ls="ls --color=auto" # people are used to it, so... - - alias cp='nocorrect cp' # no spelling correction on cp - alias mkdir='nocorrect mkdir' # no spelling correction on mkdir - alias mv='nocorrect mv' # no spelling correction on mv - -# debian stuff - alias acs='apt-cache search' - alias agi='apt-get install' - alias acsh='apt-cache show' - alias au='apt-get update' - alias ag='apt-get upgrade' - alias adg='apt-get dist-upgrade' - alias ge='grep-excuses' - alias dbp='dpkg-buildpackage' - - isgrmlcd && alias su='sudo su' # change to user root - alias tlog='tail -f /var/log/syslog' # take a look at the syslog - alias zshskel='source /etc/skel/.zshrc' # source skeleton zshrc -# }}} - -# {{{ Use hard limits, except for a smaller stack and no core dumps - unlimit - limit stack 8192 - limit core 0 # important for a live-cd-system - limit -s -# }}} - -# {{{ completion stuff -# called later (via is4 && grmlcomp) -# use 'zstyle' for getting current settings -# press ^Xh (control-x h) for getting tags in context -grmlcomp() { - zstyle ':completion:*:processes' command 'ps -au$USER' # on processes completion complete all user processes - zstyle ':completion:*:descriptions' format \ - $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}' # format on completion - zstyle ':completion:*' verbose yes # provide verbose completion information - zstyle ':completion:*:messages' format '%d' - zstyle ':completion:*:warnings' format \ - $'%{\e[0;31m%}No matches for:%{\e[0m%} %d' - zstyle ':completion:*:matches' group 'yes' # separate matches into groups - zstyle ':completion:*:options' description 'yes' # describe options in full - zstyle ':completion:*:options' auto-description '%d' - zstyle ':completion:*:*:zcompile:*' ignored-patterns '(*~|*.zwc)' - -# activate color-completion(!) - zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} - -## correction - -# Ignore completion functions for commands you don't have: -# zstyle ':completion:*:functions' ignored-patterns '_*' - zstyle ':completion::(^approximate*):*:functions' ignored-patterns '_*' - - zstyle ':completion:*' completer _complete _correct _approximate - zstyle ':completion:*:correct:*' insert-unambiguous true -# zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b' -# zstyle ':completion:*:corrections' format $'%{\e[0;31m%}%d (errors: %e)%}' - zstyle ':completion:*:corrections' format $'%{\e[0;31m%}%d (errors: %e)%{\e[0m%}' - zstyle ':completion:*:correct:*' original true - zstyle ':completion:correct:' prompt 'correct to:' - -# allow one error for every three characters typed in approximate completer - zstyle -e ':completion:*:approximate:' max-errors 'reply=( $((($#PREFIX+$#SUFFIX)/3 )) numeric )' -# zstyle ':completion:*:correct:*' max-errors 2 numeric - -# match uppercase from lowercase - zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' - -# command for process lists, the local web server details and host completion - hosts=(`hostname` grml.org) - zstyle '*' hosts $hosts - zstyle ':completion:*:urls' local 'www' '/var/www/' 'public_html' - -# offer indexes before parameters in subscripts - zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters - -# insert all expansions for expand completer - zstyle ':completion:*:expand:*' tag-order all-expansions - -# ignore duplicate entries - zstyle ':completion:*:history-words' stop yes - zstyle ':completion:*:history-words' remove-all-dups yes - zstyle ':completion:*:history-words' list false - zstyle ':completion:*:history-words' menu yes - -# filename suffixes to ignore during completion (except after rm command) -# zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.(o|c~|old|pro|zwc)' '*~' - -# Don't complete backup files as executables - zstyle ':completion:*:complete:-command-::commands' ignored-patterns '*\~' - -# If there are more than 5 options, allow selecting from a menu with -# arrows (case insensitive completion!). -# zstyle ':completion:*-case' menu select=5 - zstyle ':completion:*' menu select=5 - -# zstyle ':completion:*:*:kill:*' verbose no -# zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \ -# /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin - -# caching - [ -d $ZSHDIR/cache ] && zstyle ':completion:*' use-cache yes && \ - zstyle ':completion::complete:*' cache-path $ZSHDIR/cache/ - -# use ~/.ssh/known_hosts for completion -# local _myhosts -# _myhosts=( ${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*} ) -# zstyle ':completion:*' hosts $_myhosts - [ -f "$HOME/.ssh/known_hosts" ] && \ - hosts=(${${${(f)"$(<$HOME/.ssh/known_hosts)"}%%\ *}%%,*}) && \ - zstyle ':completion:*:hosts' hosts $hosts - -# simple completion for fbset (switch resolution on console) - _fbmodes() { compadd 640x480-60 640x480-72 640x480-75 640x480-90 640x480-100 768x576-75 800x600-48-lace 800x600-56 800x600-60 800x600-70 800x600-72 800x600-75 800x600-90 800x600-100 1024x768-43-lace 1024x768-60 1024x768-70 1024x768-72 1024x768-75 1024x768-90 1024x768-100 1152x864-43-lace 1152x864-47-lace 1152x864-60 1152x864-70 1152x864-75 1152x864-80 1280x960-75-8 1280x960-75 1280x960-75-32 1280x1024-43-lace 1280x1024-47-lace 1280x1024-60 1280x1024-70 1280x1024-74 1280x1024-75 1600x1200-60 1600x1200-66 1600x1200-76 } - compdef _fbmodes fbset - -# use generic completion system for programs not yet defined: - compdef _gnu_generic tail head feh cp mv gpg df stow uname ipacsum fetchipac - -# Debian specific stuff -# zstyle ':completion:*:*:lintian:*' file-patterns '*.deb' - zstyle ':completion:*:*:linda:*' file-patterns '*.deb' - - _debian_rules() { words=(make -f debian/rules) _make } - compdef _debian_rules debian/rules # type debian/rules inside a source package - -# see upgrade function in this file - compdef _hosts upgrade -} -# }}} - -# {{{ grmlstuff -grmlstuff() { -# people should use 'grml-x'! - if ! [ -r /etc/X11/xorg.conf ] ; then - isgrmlcd && alias startx='echo -e "Please use the script \"grml-x\" for starting the X Window System.\n If you want to use startx anyway please call \"/usr/X11R6/bin/startx\"."; return -1' - fi - -# load language settings - wrapper around the main script - grml-lang(){ - grml-setlang $* && zsh - } - - _grml-lang() { compadd at de en ; } - compdef _grml-lang grml-lang - -# _grml-x() { compadd fluxbox ion2 ion3 pekwm ratpoison twm wmi wmii ; } -# compdef _grml-x grml-x - _grml-x() { local arguments wm - wm=(fluxbox ion2 ion3 pekwm pwm2 pwm3 ratpoison twm wmi wmii) - arguments=( - '-display:display for xserver:(7 8)' - '-force[force creation of xconfig file]' '-help:display help' - '-hsync:horizontal sync frequencies ():(28 `seq 30 5 95` 96)' - '-mode:resolution-mode for xserver (x - e.g. 1024x768)]:(1920x1440 1600x1200 1400x1050 1280x102 -4 1280x960 1024x768 800x600 640x480)' - '-module:module for xserver :(`cd /usr/X11R6/lib/modules/drivers && ls *.o | sed 's/_drv.o//'`)' - '-nostart:do not start X server' - '-vsync:vertical sync frequencies ():(43 `seq 45 5 70` 72)' - '-xserver:xserver used for creation of xconfig file:(XFree86 X.org)' - ':window manager:($wm)' - ) - #'-vsync:use specified vsync (xx.0 - xx.0):(`seq -f '%g.0' 50 5 70`)' - #'-hsync:use specified hsync (xx.0 - xx.0):(28.0 `seq -f '%g.0' 30 5 95` 96.0)' - _arguments -s $arguments - } - compdef _grml-x grml-x - - grml-wallpaper() { Esetroot -scale /usr/share/grml/$* } - _grml-wallpaper() { - dirs=(. /usr/share/grml/) - _description files expl 'set desktop wallpaper on grml system' - _files "$expl[@]" -W dirs -g '*.{jpg,png}(-.)' - } - compdef _grml-wallpaper grml-wallpaper - - alias grml-version='cat /etc/grml_version' -} -# }}} - -# {{{ now run the functions - isgrml && checkhome - is4 && isgrml && grmlstuff - is4 && grmlcomp -# }}} - -# {{{ keephack - [ -r /etc/zsh/keephack ] && is4 && source /etc/zsh/keephack -# }}} - -# {{{ wonderful idea of using "e" glob qualifier by Peter Stephenson -# You use it as follows: -# $ NTREF=/reference/file -# $ ls -l *(e:nt:) -# This lists all the files in the current directory newer than the reference file. -# You can also specify the reference file inline; note quotes: -# $ ls -l *(e:'nt ~/.zshenv':) - is4 && nt() { - if [[ -n $1 ]]; then - local NTREF=${~1} - fi - [[ $REPLY -nt $NTREF ]] - } -# }}} - -# shell functions {{{ - setenv() { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" } # csh compatibility - freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done } - manzsh() { man zshall | $MYLESS -p $1 ; } - -# use it e.g. via 'restart apache2' -# for i in start restart stop reload ; -# do -# eval "$i() { /etc/init.d/\$1 $i ; }" -# done - for i in Start Restart Stop Reload ; do - if [ UID != 0 ] ; then - RUNASROOT=sudo - fi - eval "$i() { $RUNASROOT /etc/init.d/\$1 ${i:l} ; }" - done -# now the completion for this: -# compdef "_files -W /etc/init.d/" Stop Start Reload Restart - compctl -g "$(echo /etc/init.d/*(:t))" Start Restart Stop Reload -# }}} - -# source another config file if present {{{ - if [ -r /etc/zsh/zshrc.local ]; then - source /etc/zsh/zshrc.local - fi -# }}} - -## END OF FILE ################################################################# -# vim:foldmethod=marker