X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=4d9b9ad6fb162bd8423401bae6c51ff4425eb441;hb=38a1b613f10a162812ce91075bdf3ec102126dc1;hp=c5f50debf0298329d6bf139461532527329118a4;hpb=bec2df109f9bc9e0d9838627ebce721d79dcd968;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index c5f50de..4d9b9ad 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -615,13 +615,11 @@ isdarwin && xsource /sw/bin/init.sh # load our function and completion directories for fdir in /usr/share/grml/zsh/completion /usr/share/grml/zsh/functions; do fpath=( ${fdir} ${fdir}/**/*(/N) ${fpath} ) - if [[ ${fdir} == '/usr/share/grml/zsh/functions' ]] ; then - for func in ${fdir}/**/[^_]*[^~](N.) ; do - zrcautoload ${func:t} - done - fi done -unset fdir func +typeset -aU ffiles +ffiles=(/usr/share/grml/zsh/functions/**/[^_]*[^~](N.:t)) +(( ${#ffiles} > 0 )) && autoload -U "${ffiles[@]}" +unset -v fdir ffiles # support colors in less export LESS_TERMCAP_mb=$'\E[01;31m' @@ -2257,7 +2255,7 @@ grml_theme_add_token: Token `%s'\'' exists! Giving up!\n\n' $name fi } -function grml_typeset_and_wrap () { +function grml_wrap_reply () { emulate -L zsh local target="$1" local new="$2" @@ -2265,14 +2263,16 @@ function grml_typeset_and_wrap () { local right="$4" if (( ${+parameters[$new]} )); then - typeset -g "${target}=${(P)target}${left}${(P)new}${right}" + REPLY="${left}${(P)new}${right}" + else + REPLY='' fi } function grml_prompt_addto () { emulate -L zsh local target="$1" - local lr it apre apost new v + local lr it apre apost new v REPLY local -a items shift @@ -2286,21 +2286,21 @@ function grml_prompt_addto () { || apost=${grml_prompt_post_default[$it]} zstyle -s ":prompt:${grmltheme}:${lr}:items:$it" token new \ || new=${grml_prompt_token_default[$it]} - typeset -g "${target}=${(P)target}${apre}" if (( ${+grml_prompt_token_function[$it]} )); then ${grml_prompt_token_function[$it]} $it - typeset -g "${target}=${(P)target}${REPLY}" else case $it in battery) - grml_typeset_and_wrap $target $new '' '' + grml_wrap_reply $target $new '' '' ;; change-root) - grml_typeset_and_wrap $target $new '(' ')' + grml_wrap_reply $target $new '(' ')' ;; grml-chroot) if [[ -n ${(P)new} ]]; then - typeset -g "${target}=${(P)target}(CHROOT)" + REPLY="$CHROOT" + else + REPLY='' fi ;; vcs) @@ -2310,14 +2310,33 @@ function grml_prompt_addto () { vcscalled=1 fi if (( ${+parameters[$v]} )) && [[ -n "${(P)v}" ]]; then - typeset -g "${target}=${(P)target}${(P)v}" + REPLY="${(P)v}" + else + REPLY='' fi ;; - *) typeset -g "${target}=${(P)target}${new}" ;; + *) REPLY="$new" ;; esac fi - typeset -g "${target}=${(P)target}${apost}" + # Strip volatile characters per item. This is off by default. See the + # global stripping code a few lines below for details. + if [[ -o prompt_subst ]] && zstyle -t ":prompt:${grmltheme}:${lr}:items:$it" \ + strip-sensitive-characters + then + REPLY="${REPLY//[$\`]/}" + fi + typeset -g "${target}=${(P)target}${apre}${REPLY}${apost}" done + + # Per default, strip volatile characters (in the prompt_subst case) + # globally. If the option is off, the style has no effect. For more + # control, this can be turned off and stripping can be configured on a + # per-item basis (see above). + if [[ -o prompt_subst ]] && zstyle -T ":prompt:${grmltheme}:${lr}:setup" \ + strip-sensitive-characters + then + typeset -g "${target}=${${(P)target}//[$\`]/}" + fi } function prompt_grml_precmd () { @@ -2665,16 +2684,23 @@ if [[ -r /etc/debian_version ]] ; then alias acsh='apt-cache show' #a3# Execute \kbd{apt-cache policy} alias acp='apt-cache policy' - #a3# Execute \kbd{apt-get dist-upgrade} - salias adg="apt-get dist-upgrade" - #a3# Execute \kbd{apt-get install} - salias agi="apt-get install" + if check_com -c apt ; then + #a3# Execute \kbd{apt dist-upgrade} + salias adg="apt dist-upgrade" + #a3# Execute \kbd{apt upgrade} + salias ag="apt upgrade" + #a3# Execute \kbd{apt install} + salias agi="apt install" + #a3# Execute \kbd{apt-get update} + salias au="apt update" + else + salias adg="apt-get dist-upgrade" + salias ag="apt-get upgrade" + salias agi="apt-get install" + salias au="apt-get update" + fi #a3# Execute \kbd{aptitude install} salias ati="aptitude install" - #a3# Execute \kbd{apt-get upgrade} - salias ag="apt-get upgrade" - #a3# Execute \kbd{apt-get update} - salias au="apt-get update" #a3# Execute \kbd{aptitude update ; aptitude safe-upgrade} salias -a up="aptitude update ; aptitude safe-upgrade" #a3# Execute \kbd{dpkg-buildpackage} @@ -2824,8 +2850,8 @@ function sll () { fi local file jumpd curdir - local -i RTN LINODE i - local -a SEENINODES + local -i 10 RTN LINODE i + local -a SEENINODES curdir="${PWD}" RTN=0 @@ -2838,8 +2864,8 @@ function sll () { LINODE=$(zstat -L +inode "${file}") for i in ${SEENINODES} ; do if (( ${i} == ${LINODE} )) ; then - builtin cd "${curdir}" - print "link loop detected, aborting!" + builtin cd -q "${curdir}" + print 'link loop detected, aborting!' return 2 fi done @@ -2849,7 +2875,7 @@ function sll () { file="${file:t}" if [[ -d ${jumpd} ]] ; then - builtin cd "${jumpd}" || RTN=1 + builtin cd -q "${jumpd}" || RTN=1 fi file=$(readlink "$file") @@ -2857,7 +2883,7 @@ function sll () { file="${file:t}" if [[ -d ${jumpd} ]] ; then - builtin cd "${jumpd}" || RTN=1 + builtin cd -q "${jumpd}" || RTN=1 fi ls -l "${PWD}/${file}" || RTN=1 @@ -2866,7 +2892,7 @@ function sll () { if (( ${#} >= 1 )) ; then print "" fi - builtin cd "${curdir}" + builtin cd -q "${curdir}" done return ${RTN} } @@ -3126,7 +3152,7 @@ function ssl-cert-info () { } # make sure our environment is clean regarding colors -builtin unset -v BLUE RED GREEN CYAN YELLOW MAGENTA WHITE +builtin unset -v BLUE RED GREEN CYAN YELLOW MAGENTA WHITE NO_COLOR # "persistent history" # just write important commands you always need to $GRML_IMPORTANT_COMMANDS