X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=d6c3dd319946794562e3755e528c244318c37e8a;hb=6f238eb14ee497b4d561ce68a6d09cf227aee6c6;hp=b3da7ff7b6fc1e9cadd4106feb38bd5303f1ed3d;hpb=21be0f44c81ec3a902d0db8cfff04b0bb571e1cb;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index b3da7ff..d6c3dd3 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -521,10 +521,6 @@ for var in LANG LC_ALL LC_MESSAGES ; do [[ -n ${(P)var} ]] && export $var done -xsource "/etc/sysconfig/keyboard" - -TZ=$(xcat /etc/timezone) - # set some variables if check_com -c vim ; then #v# @@ -540,7 +536,12 @@ export PAGER=${PAGER:-less} export MAIL=${MAIL:-/var/mail/$USER} # if we don't set $SHELL then aterm, rxvt,.. will use /bin/sh or /bin/bash :-/ -export SHELL='/bin/zsh' +if [[ -z "$SHELL" ]] ; then + SHELL="$(which zsh)" + if [[ -x "$SHELL" ]] ; then + export SHELL + fi +fi # color setup for ls: check_com -c dircolors && eval $(dircolors -b) @@ -605,8 +606,9 @@ if is4 ; then fi # completion system +COMPDUMPFILE=${COMPDUMPFILE:-${ZDOTDIR:-${HOME}}/.zcompdump} if zrcautoload compinit ; then - compinit || print 'Notice: no compinit available :(' + compinit -d ${COMPDUMPFILE} || print 'Notice: no compinit available :(' else print 'Notice: no compinit available :(' function compdef { } @@ -773,7 +775,7 @@ grmlcomp() { # use generic completion system for programs not yet defined; (_gnu_generic works # with commands that provide a --help option with "standard" gnu-like output.) - for compcom in cp deborphan df feh fetchipac head hnb ipacsum mv \ + for compcom in cp deborphan df feh fetchipac gpasswd head hnb ipacsum mv \ pal stow tail uname ; do [[ -z ${_comps[$compcom]} ]] && compdef _gnu_generic ${compcom} done; unset compcom @@ -816,21 +818,6 @@ beginning-or-end-of-somewhere() { zle -N beginning-of-somewhere beginning-or-end-of-somewhere zle -N end-of-somewhere beginning-or-end-of-somewhere -## toggle the ,. abbreviation feature on/off -# NOABBREVIATION: default abbreviation-state -# 0 - enabled (default) -# 1 - disabled -NOABBREVIATION=${NOABBREVIATION:-0} - -grml_toggle_abbrev() { - if (( ${NOABBREVIATION} > 0 )) ; then - NOABBREVIATION=0 - else - NOABBREVIATION=1 - fi -} -zle -N grml_toggle_abbrev - # add a command line to the shells history without executing it commit-to-history() { print -s ${(z)BUFFER} @@ -992,11 +979,10 @@ zle -N accept-line zle -N Accept-Line zle -N Accept-Line-HandleContext -# power completion - abbreviation expansion # power completion / abbreviation expansion / buffer expansion # see http://zshwiki.org/home/examples/zleiab for details # less risky than the global aliases but powerful as well -# just type the abbreviation key and afterwards ',.' to expand it +# just type the abbreviation key and afterwards 'ctrl-x .' to expand it declare -A abk setopt extendedglob setopt interactivecomments @@ -1028,11 +1014,6 @@ zleiab() { setopt extendedglob local MATCH - if (( NOABBREVIATION > 0 )) ; then - LBUFFER="${LBUFFER},." - return 0 - fi - LBUFFER=${LBUFFER%%(#m)[.\-+:|_a-zA-Z0-9]#} LBUFFER+=${abk[$MATCH]:-$MATCH} } @@ -1041,7 +1022,7 @@ zle -N zleiab help-show-abk() { - zle -M "$(print "Type ,. after these abbreviations to expand them:"; print -a -C 2 ${(kv)abk})" + zle -M "$(print "Available abbreviations for expansion:"; print -a -C 2 ${(kv)abk})" } zle -N help-show-abk @@ -1123,7 +1104,6 @@ inplaceMkDirs() { fi } -#k# mkdir -p
] @@ -1927,6 +1916,11 @@ function GRML_theme_add_token_usage () { return value is expected in the \$REPLY parameter. The use of these options is mutually exclusive. + There is a utility function \`grml_theme_has_token', which you can use + to test if a token exists before trying to add it. This can be a guard + for situations in which a \`grml_theme_add_token' call may happen more + than once. + Example: To add a new token \`day' that expands to the current weekday in the @@ -1990,7 +1984,7 @@ grml_theme_add_token: andneed to by specified _both_!\n\n' shift 2 fi - if (( ${+grml_prompt_token_default[$name]} )); then + if grml_theme_has_token $name; then printf ' grml_theme_add_token: Token `%s'\'' exists! Giving up!\n\n' $name GRML_theme_add_token_usage @@ -2035,7 +2029,7 @@ function grml_prompt_addto () { for it in "${items[@]}"; do zstyle -s ":prompt:${grmltheme}:${lr}:items:$it" pre apre \ || apre=${grml_prompt_pre_default[$it]} - zstyle -s ":prompt:grml:${grmltheme}:${lr}:$it" post apost \ + zstyle -s ":prompt:${grmltheme}:${lr}:items:$it" post apost \ || apost=${grml_prompt_post_default[$it]} zstyle -s ":prompt:${grmltheme}:${lr}:items:$it" token new \ || new=${grml_prompt_token_default[$it]} @@ -2283,8 +2277,8 @@ fi # do we have GNU ls with color-support? if [[ "$TERM" != dumb ]]; then - #a1# List files with colors (\kbd{ls -b -CF \ldots}) - alias ls='ls -b -CF '${ls_options:+"${ls_options[*]}"} + #a1# List files with colors (\kbd{ls -CF \ldots}) + alias ls='ls -CF '${ls_options:+"${ls_options[*]}"} #a1# List all files, with colors (\kbd{ls -la \ldots}) alias la='ls -la '${ls_options:+"${ls_options[*]}"} #a1# List files with long colored list, without dotfiles (\kbd{ls -l \ldots}) @@ -2294,7 +2288,7 @@ if [[ "$TERM" != dumb ]]; then #a1# List files with long colored list, append qualifier to filenames (\kbd{ls -lF \ldots})\\&\quad(\kbd{/} for directories, \kbd{@} for symlinks ...) alias l='ls -lF '${ls_options:+"${ls_options[*]}"} else - alias ls='ls -b -CF' + alias ls='ls -CF' alias la='ls -la' alias ll='ls -l' alias lh='ls -hAl' @@ -2522,6 +2516,7 @@ compdef _functions freload #f1# List symlinks in detail (more detailed version of 'readlink -f' and 'whence -s') sll() { [[ -z "$1" ]] && printf 'Usage: %s \n' "$0" && return 1 + local file for file in "$@" ; do while [[ -h "$file" ]] ; do ls -l $file @@ -2534,26 +2529,31 @@ sll() { # PAGER='less -Mr' - If so, the use of $PAGER here needs fixing # with respect to wordsplitting. (ie. ${=PAGER}) if check_com -c $PAGER ; then - #f3# View Debian's changelog of a given package + #f3# View Debian's changelog of given package(s) dchange() { emulate -L zsh - if [[ -r /usr/share/doc/$1/changelog.Debian.gz ]] ; then - $PAGER /usr/share/doc/$1/changelog.Debian.gz - elif [[ -r /usr/share/doc/$1/changelog.gz ]] ; then - $PAGER /usr/share/doc/$1/changelog.gz - else - if check_com -c aptitude ; then - echo "No changelog for package $1 found, using aptitude to retrieve it." - if isgrml ; then - aptitude -t unstable changelog $1 + [[ -z "$1" ]] && printf 'Usage: %s \n' "$0" && return 1 + + local package + for package in "$@" ; do + if [[ -r /usr/share/doc/${package}/changelog.Debian.gz ]] ; then + $PAGER /usr/share/doc/${package}/changelog.Debian.gz + elif [[ -r /usr/share/doc/${package}/changelog.gz ]] ; then + $PAGER /usr/share/doc/${package}/changelog.gz + elif [[ -r /usr/share/doc/${package}/changelog ]] ; then + $PAGER /usr/share/doc/${package}/changelog + else + if check_com -c aptitude ; then + echo "No changelog for package $package found, using aptitude to retrieve it." + aptitude changelog "$package" + elif check_com -c apt-get ; then + echo "No changelog for package $package found, using apt-get to retrieve it." + apt-get changelog "$package" else - aptitude changelog $1 + echo "No changelog for package $package found, sorry." fi - else - echo "No changelog for package $1 found, sorry." - return 1 fi - fi + done } _dchange() { _files -W /usr/share/doc -/ } compdef _dchange dchange @@ -2739,11 +2739,6 @@ if check_com vim; then } fi -# make a backup of a file -bk() { - cp -a "$1" "${1}_$(date --iso-8601=seconds)" -} - ssl_hashes=( sha512 sha256 sha1 md5 ) for sh in ${ssl_hashes}; do @@ -2931,8 +2926,13 @@ modified() { check_com new || alias new=modified # use colors when GNU grep with color-support -#a2# Execute \kbd{grep -{}-color=auto} -(( $#grep_options > 0 )) && alias grep='grep '${grep_options:+"${grep_options[*]}"} +if (( $#grep_options > 0 )); then + o=${grep_options:+"${grep_options[*]}"} + #a2# Execute \kbd{grep -{}-color=auto} + alias grep='grep '$o + alias egrep='egrep '$o + unset o +fi # Translate DE<=>EN # 'translate' looks up fot a word in a file with language-to-language