zshrc: Remove superfluous function shtgz.
[grml-etc-core.git] / etc / zsh / zshrc
index f2e1b39..36f54ea 100644 (file)
@@ -291,79 +291,6 @@ GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1}
 GRML_ALWAYS_LOAD_ALL=${GRML_ALWAYS_LOAD_ALL:-0}
 ZSH_NO_DEFAULT_LOCALE=${ZSH_NO_DEFAULT_LOCALE:-0}
 
-if isgrmlcd ; then
-    GRML_WARN_SKEL=${GRML_WARN_SKEL:-0}
-else
-    GRML_WARN_SKEL=${GRML_WARN_SKEL:-1}
-fi
-
-if (( GRML_WARN_SKEL != 0 )) ; then
-
-function grml_warn_skel_main() {
-    printf '
-Dear user,
-
-You updated grml'\''s zshrc which brings a major change.
-The configuration is kept only in one file, being the global zshrc.
-In the past, the configuration was split in two files, with the
-second file being the .zshrc file from /etc/skel.
-
-If you have a .zshrc file in your home directory that originally
-came from the skel directory, please remove it. This is also the case
-if you followed earlier instructions from the grml-zsh-refcard or
-from <http://grml.org/console/> on non-grml systems.
-
-Please see the current grml-zsh-refcard (available at
-<http://grml.org/zsh/>) for updated installation information. In short,
-you don'\''t want a .zshrc.global file. Install the global zshrc to
-~/.zshrc and be done.
-
-If you need changes to the configuration, use ~/.zshrc.pre and
-~/.zshrc.local.
-
-'
-}
-
-function grml_warn_skel_remove() {
-    printf 'To remove this warning execute '\''grml_do_not_warn_skel'\''.\n\n'
-}
-
-function grml_do_not_warn_skel() {
-    printf '# Do not warn about old skel dot-files anymore\n' >>! ~/.zshrc.pre
-    printf 'GRML_WARN_SKEL=0\n' >>! ~/.zshrc.pre
-}
-
-# let's try to guess how the user uses us.
-if is-at-least 4.3.7 ; then
-    # funcsourcetrace requires at least version 4.3.7 of zsh.
-    GRML_SRC_FILE="${${funcsourcetrace[1]}%:*}"
-
-    grml_warn_skel_main
-    case ${GRML_SRC_FILE} in
-        (${HOME}/.zshrc.global)
-            grml_warn_skel_remove
-            printf '\nIt looks like you copied the grml zshrc to '\''~/.zshrc.global'\''.\n'
-            printf 'Nowadays you just copy the global zshrc to '\''~/.zshrc'\'' to use\n'
-            printf 'it on a non-grml-system.\n'
-            ;;
-        (${HOME}/.zshrc)
-            printf '\nIt looks like you copied the grml zshrc to '\''~/.zshrc'\''.\n'
-            printf 'We'\''ll disable this warning automatically for later sessions.\n'
-            grml_do_not_warn_skel
-            ;;
-        (*)
-            grml_do_not_warn_skel
-            ;;
-    esac
-else
-    grml_warn_skel_main
-    grml_warn_skel_remove
-fi
-
-unfunction grml_warn_skel_remove grml_warn_skel_main
-
-fi # GRML_WARN_SKEL
-
 # }}}
 
 # utility functions {{{
@@ -540,32 +467,6 @@ xsource "/etc/sysconfig/keyboard"
 TZ=$(xcat /etc/timezone)
 # }}}
 
-# check for potentially old files in 'completion.d' {{{
-setopt extendedglob
-xof=(/etc/zsh/completion.d/*~/etc/zsh/completion.d/_*(N))
-if (( ${#xof} > 0 )) ; then
-    printf '\n -!- INFORMATION\n\n'
-    printf ' -!- %s file(s) not starting with an underscore (_) found in\n' ${#xof}
-    printf ' -!- /etc/zsh/completion.d/.\n\n'
-    printf ' -!- While this has been the case in old versions of grml-etc-core,\n'
-    printf ' -!- recent versions of the grml-zsh-setup have all these files rewritten\n'
-    printf ' -!- and renamed. Furthermore, the grml-zsh-setup will *only* add files\n'
-    printf ' -!- named _* to that directory.\n\n'
-    printf ' -!- If you added functions to completion.d yourself, please consider\n'
-    printf ' -!- moving them to /etc/zsh/functions.d/. Files in that directory, not\n'
-    printf ' -!- starting with an underscore are marked for automatic loading\n'
-    printf ' -!- by default (so that is quite convenient).\n\n'
-    printf ' -!- If there are files *not* starting with an underscore from an older\n'
-    printf ' -!- grml-etc-core in completion.d, you may safely remove them.\n\n'
-    printf ' -!- Delete the files for example via running:\n\n'
-    printf "      rm ${xof}\n\n"
-    printf ' -!- Note, that this message will *not* go away, unless you yourself\n'
-    printf ' -!- resolve the situation manually.\n\n'
-    BROKEN_COMPLETION_DIR=1
-fi
-unset xof
-# }}}
-
 # {{{ set some variables
 if check_com -c vim ; then
 #v#
@@ -598,22 +499,16 @@ fi
 # do Fink setup on darwin
 isdarwin && xsource /sw/bin/init.sh
 
-# completion functions go to /etc/zsh/completion.d
-# function files may be put into /etc/zsh/functions.d, from where they
-# will be automatically autoloaded.
-if [[ -n "$BROKEN_COMPLETION_DIR" ]] ; then
-    print 'Warning: not setting completion directories because broken files have been found.' >&2
-else
-    [[ -d /etc/zsh/completion.d ]] && fpath=( $fpath /etc/zsh/completion.d )
-    if [[ -d /etc/zsh/functions.d ]] ; then
-        fdir='/etc/zsh/functions.d'
-        fpath=( ${fdir} ${fdir}/**/*(/N) ${fpath} )
+# load our function and completion directories
+for fdir in /usr/share/grml/zsh/completion /usr/share/grml/functions; do
+    fpath=( ${fdir} ${fdir}/**/*(/N) ${fpath} )
+    if [[ ${fpath} == '/usr/share/grml/zsh/functions' ]] ; then
         for func in ${fdir}/**/[^_]*[^~](N.) ; do
             zrcautoload ${func:t}
         done
-        unset fdir
     fi
-fi
+done
+unset fdir func
 
 # support colors in less
 export LESS_TERMCAP_mb=$'\E[01;31m'
@@ -944,7 +839,9 @@ alias url-quote='autoload -U url-quote-magic ; zle -N self-insert url-quote-magi
 
 #m# k ESC-h Call \kbd{run-help} for the 1st word on the command line
 alias run-help >&/dev/null && unalias run-help
-zrcautoload run-help # use via 'esc-h'
+for rh in run-help{,-git,-svk,-svn}; do
+    zrcautoload $rh
+done; unset rh
 
 # completion system
 if zrcautoload compinit ; then
@@ -1070,10 +967,12 @@ if [[ -f ${DIRSTACKFILE} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
 fi
 
 chpwd() {
+    local -ax my_stack
+    my_stack=( ${PWD} ${dirstack} )
     if is42 ; then
-        builtin print -l ${(u)dirstack} >! ${DIRSTACKFILE}
+        builtin print -l ${(u)my_stack} >! ${DIRSTACKFILE}
     else
-        uprint dirstack >! ${DIRSTACKFILE}
+        uprint my_stack >! ${DIRSTACKFILE}
     fi
 }
 
@@ -2160,7 +2059,7 @@ else
     # set variable identifying the chroot you work in (used in the prompt below)
     if [[ $GRMLPROMPT -gt 0 ]] ; then
         PROMPT="${RED}${EXITCODE}${CYAN}[%j running job(s)] ${GREEN}{history#%!} ${RED}%(3L.+.) ${BLUE}%* %D
-${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# "
+${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< "'${VCS_INFO_message_0_}'"%# "
     else
         # This assembles the primary prompt string
         if (( EUID != 0 )); then
@@ -3203,7 +3102,7 @@ alias lss='ls -l *(s,S,t)'             # only files with setgid/setuid/sticky fl
 #a2# Only show 1st ten symlinks
 alias lsl='ls -l *(@[1,10])'           # only symlinks
 #a2# Display only executables
-alias lsx='ls -l *(*[1,10])'           # only executables
+alias lsx='ls -l *(*)'                 # only executables
 #a2# Display world-{readable,writable,executable} files
 alias lsw='ls -ld *(R,W,X.^ND/)'       # world-{readable,writable,executable} files
 #a2# Display the ten biggest files
@@ -3442,16 +3341,11 @@ mdiff() {
 memusage() {
     ps aux | awk '{if (NR > 1) print $5; if (NR > 2) print "+"} END { print "p" }' | dc
 }
-#f5# Show contents of tar file
+#f5# Show contents of gzipped tar file
 shtar() {
     emulate -L zsh
     gunzip -c $1 | tar -tf - -- | $PAGER
 }
-#f5# Show contents of tgz file
-shtgz() {
-    emulate -L zsh
-    tar -ztf $1 | $PAGER
-}
 #f5# Show contents of zip file
 shzip() {
     emulate -L zsh
@@ -3473,17 +3367,6 @@ viless() {
     vim --cmd 'let no_plugin_maps = 1' -c "so \$VIMRUNTIME/macros/less.vim" "${@:--}"
 }
 
-# download video from youtube
-ytdl() {
-    emulate -L zsh
-    if ! [[ -n "$2" ]] ; then
-        print "Usage: ydtl http://youtube.com/watch?v=.... outputfile.flv">&2
-        return 1
-    else
-        wget -O${2} "http://youtube.com/get_video?"${${${"$(wget -o/dev/null -O- "${1}" | grep -e watch_fullscreen)"}##*watch_fullscreen\?}%%\&fs=*}
-    fi
-}
-
 # Function Usage: uopen $URL/$file
 #f5# Download a file and display it locally
 uopen() {