X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=dad3104769d00fe4a0d2515fce98bdab9eb00b6c;hb=a3d8018d5f6547c85a366db053d2ef22ac40e433;hp=b48301d044c5b5da874015515618d572214094df;hpb=ad6af5157b3821e5277f45883b1c7b5c54088494;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index b48301d..dad3104 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -272,7 +272,6 @@ setopt hash_list_all # Whenever a command completion is attempted, make s setopt completeinword # not just at the end setopt nohup # and don't kill them, either setopt auto_pushd # make cd push the old directory onto the directory stack. -setopt nonomatch # try to avoid the 'zsh: no matches found...' setopt nobeep # avoid "beep"ing setopt pushd_ignore_dups # don't push the same dir twice. setopt noglobdots # * shouldn't match dotfiles. ever. @@ -288,7 +287,6 @@ COMMAND_NOT_FOUND=${COMMAND_NOT_FOUND:-0} GRML_ZSH_CNF_HANDLER=${GRML_ZSH_CNF_HANDLER:-/usr/share/command-not-found/command-not-found} BATTERY=${BATTERY:-0} GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1} -GRML_ALWAYS_LOAD_ALL=${GRML_ALWAYS_LOAD_ALL:-0} ZSH_NO_DEFAULT_LOCALE=${ZSH_NO_DEFAULT_LOCALE:-0} # utility functions @@ -860,7 +858,7 @@ abk=( 'co' './configure && make && sudo make install' ) -globalias() { +zleiab() { emulate -L zsh setopt extendedglob local MATCH @@ -875,8 +873,8 @@ globalias() { LBUFFER+=${abk[$MATCH]:-$MATCH} } -zle -N globalias -bindkey ",." globalias +zle -N zleiab +bindkey ",." zleiab # autoloading zrcautoload zmv # who needs mmv or rename? @@ -1428,16 +1426,6 @@ if [[ -x /sbin/kexec ]] && [[ -r /proc/cmdline ]] ; then alias "$(uname -r)-reboot"="kexec -l --initrd=/boot/initrd.img-"$(uname -r)" --command-line=\"$(cat /proc/cmdline)\" /boot/vmlinuz-"$(uname -r)"" fi -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 -alias rm='nocorrect rm' # no spelling correction on rm - -#a1# Execute \kbd{rmdir} -alias rd='rmdir' -#a1# Execute \kbd{mkdir} -alias md='mkdir' - # see http://www.cl.cam.ac.uk/~mgk25/unicode.html#term for details alias term2iso="echo 'Setting terminal to iso mode' ; print -n '\e%@'" alias term2utf="echo 'Setting terminal to utf-8 mode'; print -n '\e%G'" @@ -1462,31 +1450,12 @@ iso2utf() { fi } -# I like clean prompt, so provide simple way to get that -check_com 0 || alias 0='return 0' - -# for really lazy people like mika: -check_com S &>/dev/null || alias S='screen' -check_com s &>/dev/null || alias s='ssh' - # especially for roadwarriors using GNU screen and ssh: if ! check_com asc &>/dev/null ; then asc() { autossh -t "$@" 'screen -RdU' } compdef asc=ssh fi -# get top 10 shell commands: -alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' - -# truecrypt; use e.g. via 'truec /dev/ice /mnt/ice' or 'truec -i' -if check_com -c truecrypt ; then - if isutfenv ; then - alias truec='truecrypt --mount-options "rw,sync,dirsync,users,uid=1000,gid=users,umask=077,utf8" ' - else - alias truec='truecrypt --mount-options "rw,sync,dirsync,users,uid=1000,gid=users,umask=077" ' - fi -fi - #f1# Hints for the use of zsh on grml zsh-help() { print "$bg[white]$fg[black] @@ -1514,10 +1483,6 @@ very lately. System wide configuration without touching configuration files of grml can take place in /etc/zsh/zshrc.local. -Normally, the root user (EUID == 0) does not get the whole grml setup. -If you want to force the whole setup for that user, too, set -GRML_ALWAYS_LOAD_ALL=1 in .zshrc.pre in root'\''s home directory. - For information regarding zsh start at http://grml.org/zsh/ Take a look at grml'\''s zsh refcard: @@ -2149,19 +2114,6 @@ deswap() { print 'Finished, running "swapoff -a; swapon -a" may also be useful.' } -# spawn a minimally set up mksh - useful if you want to umount /usr/. -minimal-shell() { - emulate -L zsh - local shell="/bin/mksh" - - if [[ ! -x ${shell} ]]; then - printf '`%s'\'' not available, giving up.\n' ${shell} >&2 - return 1 - fi - - exec env -i ENV="/etc/minimal-shellrc" HOME="$HOME" TERM="$TERM" ${shell} -} - # a wrapper for vim, that deals with title setting # VIM_OPTIONS # set this array to a set of options to vim you always want @@ -2225,53 +2177,19 @@ fi # load the lookup subsystem if it's available on the system zrcautoload lookupinit && lookupinit -### non-root (EUID != 0) code below -### - -if (( GRML_ALWAYS_LOAD_ALL == 0 )) && (( $EUID == 0 )) ; then - zrclocal - return 0 -fi - # variables # set terminal property (used e.g. by msgid-chooser) export COLORTERM="yes" -#m# v QTDIR \kbd{/usr/share/qt[34]}\quad [for non-root only] -[[ -d /usr/share/qt3 ]] && export QTDIR=/usr/share/qt3 -[[ -d /usr/share/qt4 ]] && export QTDIR=/usr/share/qt4 - -# support running 'jikes *.java && jamvm HelloWorld' OOTB: -#v# [for non-root only] -[[ -f /usr/share/classpath/glibj.zip ]] && export JIKESPATH=/usr/share/classpath/glibj.zip - # aliases -# Xterm resizing-fu. -# Based on http://svn.kitenet.net/trunk/home-full/.zshrc?rev=11710&view=log (by Joey Hess) -alias hide='echo -en "\033]50;nil2\007"' -alias tiny='echo -en "\033]50;-misc-fixed-medium-r-normal-*-*-80-*-*-c-*-iso8859-15\007"' -alias small='echo -en "\033]50;6x10\007"' -alias medium='echo -en "\033]50;-misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-15\007"' -alias default='echo -e "\033]50;-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-15\007"' -alias large='echo -en "\033]50;-misc-fixed-medium-r-normal-*-*-150-*-*-c-*-iso8859-15\007"' -alias huge='echo -en "\033]50;-misc-fixed-medium-r-normal-*-*-210-*-*-c-*-iso8859-15\007"' -alias smartfont='echo -en "\033]50;-artwiz-smoothansi-*-*-*-*-*-*-*-*-*-*-*-*\007"' -alias semifont='echo -en "\033]50;-misc-fixed-medium-r-semicondensed-*-*-120-*-*-*-*-iso8859-15\007"' - # general #a2# Execute \kbd{du -sch} alias da='du -sch' #a2# Execute \kbd{jobs -l} alias j='jobs -l' -# compile stuff -#a2# Execute \kbd{./configure} -alias CO="./configure" -#a2# Execute \kbd{./configure --help} -alias CH="./configure --help" - # listing stuff #a2# Execute \kbd{ls -lSrah} alias dir="ls -lSrah" @@ -2300,30 +2218,10 @@ alias lsold="ls -rtlh *(D.Om[1,10])" # display the oldest files #a2# Display the ten smallest files alias lssmall="ls -Srl *(.oL[1,10])" # display the smallest files -# chmod -#a2# Execute \kbd{chmod 600} -alias rw-='chmod 600' -#a2# Execute \kbd{chmod 700} -alias rwx='chmod 700' -#m# a2 r-{}- Execute \kbd{chmod 644} -alias r--='chmod 644' -#a2# Execute \kbd{chmod 755} -alias r-x='chmod 755' - # some useful aliases -#a2# Execute \kbd{mkdir -p} -alias md='mkdir -p' #a2# Remove current empty directory. Execute \kbd{cd ..; rmdir $OLDCWD} alias rmcdir='cd ..; rmdir $OLDPWD || cd $OLDPWD' -# console stuff -#a2# Execute \kbd{mplayer -vo fbdev} -alias cmplayer='mplayer -vo fbdev' -#a2# Execute \kbd{mplayer -vo fbdev -fs -zoom} -alias fbmplayer='mplayer -vo fbdev -fs -zoom' -#a2# Execute \kbd{links2 -driver fb} -alias fblinks='links2 -driver fb' - #a2# ssh with StrictHostKeyChecking=no \\&\quad and UserKnownHostsFile unset alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' alias insecscp='scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' @@ -2331,9 +2229,6 @@ alias insecscp='scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/nu # simple webserver check_com -c python && alias http="python -m SimpleHTTPServer" -# Use 'g' instead of 'git': -check_com g || alias g='git' - # work around non utf8 capable software in utf environment via $LANG and luit if check_com isutfenv && check_com luit ; then if check_com -c mrxvt ; then @@ -2378,9 +2273,10 @@ cd() { } #f5# Create Directoy and \kbd{cd} to it -mcd() { +mkcd() { mkdir -p "$@" && cd "$@" } + #f5# Create temporary directory and \kbd{cd} to it cdt() { local t @@ -2423,22 +2319,6 @@ inplaceMkDirs() { #k# mkdir -p from string under cursor or marked area zle -N inplaceMkDirs && bindkey '^XM' inplaceMkDirs -# Function Usage: doc packagename -#f5# \kbd{cd} to /usr/share/doc/\textit{package} -doc() { - emulate -L zsh - cd /usr/share/doc/$1 && ls -} -_doc() { _files -W /usr/share/doc -/ } -check_com compdef && compdef _doc doc - -#f5# Make screenshot -sshot() { - [[ ! -d ~/shots ]] && mkdir ~/shots - #cd ~/shots ; sleep 5 ; import -window root -depth 8 -quality 80 `date "+%Y-%m-%d--%H:%M:%S"`.png - cd ~/shots ; sleep 5; import -window root shot_`date --iso-8601=m`.jpg -} - #f5# List files which have been accessed within the last {\it n} days, {\it n} defaults to 1 accessed() { emulate -L zsh @@ -2462,8 +2342,6 @@ check_com new || alias new=modified # use colors when GNU grep with color-support #a2# Execute \kbd{grep -{}-color=auto} (grep --help 2>/dev/null |grep -- --color) >/dev/null && alias grep='grep --color=auto' -#a2# Execute \kbd{grep -i -{}-color=auto} -alias GREP='grep -i --color=auto' # Translate DE<=>EN # 'translate' looks up fot a word in a file with language-to-language @@ -2645,56 +2523,6 @@ _simple_extract() compdef _simple_extract simple-extract alias se=simple-extract -# Usage: smartcompress () -#f5# Smart archive creator -smartcompress() { - emulate -L zsh - if [[ -n $2 ]] ; then - case $2 in - tgz | tar.gz) tar -zcvf$1.$2 $1 ;; - tbz2 | tar.bz2) tar -jcvf$1.$2 $1 ;; - tar.Z) tar -Zcvf$1.$2 $1 ;; - tar) tar -cvf$1.$2 $1 ;; - gz | gzip) gzip $1 ;; - bz2 | bzip2) bzip2 $1 ;; - *) - echo "Error: $2 is not a valid compression type" - ;; - esac - else - smartcompress $1 tar.gz - fi -} - -# Usage: show-archive -#f5# List an archive's content -show-archive() { - emulate -L zsh - if [[ -f $1 ]] ; then - case $1 in - *.tar.gz) gunzip -c $1 | tar -tf - -- ;; - *.tar) tar -tf $1 ;; - *.tgz) tar -ztf $1 ;; - *.zip) unzip -l $1 ;; - *.bz2) bzless $1 ;; - *.deb) dpkg-deb --fsys-tarfile $1 | tar -tf - -- ;; - *) echo "'$1' Error. Please go away" ;; - esac - else - echo "'$1' is not a valid archive" - fi -} - -# TODO: So, this is the third incarnation of this function!? -#f5# Reload given functions -refunc() { - for func in $argv ; do - unfunction $func - autoload $func - done -} -compdef _functions refunc - #f5# Set all ulimit parameters to \kbd{unlimited} allulimit() { ulimit -c unlimited @@ -2706,11 +2534,6 @@ allulimit() { ulimit -t unlimited } -# highlight important stuff in diff output, usage example: hg diff | hidiff -#m# a2 hidiff \kbd{histring} oneliner for diffs -check_com -c histring && \ - alias hidiff="histring -fE '^Comparing files .*|^diff .*' | histring -c yellow -fE '^\-.*' | histring -c green -fE '^\+.*'" - #f5# Change the xterm title from within GNU-screen xtrename() { emulate -L zsh