X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=641408935d2b8ffd571e92ccc7fcdc9f02b28cc7;hb=fa4c0c3937e1edccf092e15a560a2da22ee5b6a0;hp=eb1767eeeed4c39b5f262eb27e4d2d2e8fd4c162;hpb=06a39dc69b644a1f757481e3af31e8c1025a88ea;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index eb1767e..6414089 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 @@ -992,11 +994,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 @@ -1123,7 +1124,6 @@ inplaceMkDirs() { fi } -#k# mkdir -p
] @@ -1927,6 +1937,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 +2005,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 +2050,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 +2298,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 +2309,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 +2537,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 +2550,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 +2760,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 +2947,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