X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=0f6c36f429f86fecaafc34a0791475aaf758945f;hb=ad4e4f6585680fdc1d474b707510cee94f368ec9;hp=21ece37767fce78e273569a679e1eba90a0166da;hpb=7ee39bb465be04463af28e41e3689ebfd4c57159;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 21ece37..0f6c36f 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -1325,7 +1325,7 @@ is4 && [[ $NOPRECMD -eq 0 ]] && precmd () { fi fi # just use DONTSETRPROMPT=1 to be able to overwrite RPROMPT - if [[ $DONTSETRPROMPT -eq 0 ]] ; then + if [[ ${DONTSETRPROMPT:-} -eq 0 ]] ; then if [[ $BATTERY -gt 0 ]] ; then # update battery (dropped into $PERCENT) information battery @@ -1336,7 +1336,7 @@ is4 && [[ $NOPRECMD -eq 0 ]] && precmd () { fi # adjust title of xterm # see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html - [[ ${NOTITLE} -gt 0 ]] && return 0 + [[ ${NOTITLE:-} -gt 0 ]] && return 0 case $TERM in (xterm*|rxvt*) set_title ${(%):-"%n@%m: %~"} @@ -2109,6 +2109,8 @@ alias help-zshglob=H-Glob #v1# set number of lines to display per page HELP_LINES_PER_PAGE=20 +#v1# set location of help-zle cache file +HELP_ZLE_CACHE_FILE=~/.cache/zsh_help_zle_lines.zsh #f1# helper function for help-zle, actually generates the help text help_zle_parse_keybindings() { @@ -2119,6 +2121,12 @@ help_zle_parse_keybindings() #v1# choose files that help-zle will parse for keybindings ((${+HELPZLE_KEYBINDING_FILES})) || HELPZLE_KEYBINDING_FILES=( /etc/zsh/zshrc ~/.zshrc.pre ~/.zshrc ~/.zshrc.local ) + if [[ -r $HELP_ZLE_CACHE_FILE ]]; then + local load_cache=0 + for f ($KEYBINDING_FILES) [[ $f -nt $HELP_ZLE_CACHE_FILE ]] && load_cache=1 + [[ $load_cache -eq 0 ]] && . $HELP_ZLE_CACHE_FILE && return + fi + #fill with default keybindings, possibly to be overwriten in a file later #Note that due to zsh inconsistency on escaping assoc array keys, we encase the key in '' which we will remove later local -A help_zle_keybindings @@ -2197,6 +2205,9 @@ help_zle_parse_keybindings() done #sort lines alphabetically help_zle_lines=("${(i)help_zle_lines[@]}") + [[ -d ${HELP_ZLE_CACHE_FILE:h} ]] || mkdir -p "${HELP_ZLE_CACHE_FILE:h}" + echo "help_zle_lines=(${(q)help_zle_lines[@]})" >| $HELP_ZLE_CACHE_FILE + zcompile $HELP_ZLE_CACHE_FILE } typeset -g help_zle_sln typeset -g -a help_zle_lines @@ -2470,17 +2481,6 @@ fi # set terminal property (used e.g. by msgid-chooser) export COLORTERM="yes" -# set default browser -if [[ -z "$BROWSER" ]] ; then - if [[ -n "$DISPLAY" ]] ; then - #v# If X11 is running - check_com -c firefox && export BROWSER=firefox - else - #v# If no X11 is running - check_com -c w3m && export BROWSER=w3m - fi -fi - #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 @@ -2555,8 +2555,10 @@ alias r--='chmod 644' alias r-x='chmod 755' # some useful aliases -#a2# Execute \kbd{mkdir -o} +#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} @@ -2799,7 +2801,7 @@ inplaceMkDirs() { bufwords=(${(z)LBUFFER}) iword=${#bufwords} bufwords=(${(z)BUFFER}) - PATHTOMKDIR="$bufwords[iword]" + PATHTOMKDIR="${(Q)bufwords[iword]}" fi [[ -z "${PATHTOMKDIR}" ]] && return 1 if [[ -e "${PATHTOMKDIR}" ]]; then @@ -2977,10 +2979,16 @@ if is439 && [[ -d /dev/disk/by-id/ ]]; then emulate -L zsh setopt extendedglob local -a -U disks + local -A mountinfo disks=( /dev/disk/by-id/*(@:A) ) + [[ -r /proc/mounts ]] && for cline ( "${(f)$(}/${dev:t}/size(N) ) \ + print -f " Size: %.3f GiB (%d Byte)\n" $(($(<$sysdevsize)/(2.0*1024.0*1024.0))) $(($(<$sysdevsize)*512)) + + print -f " Id: %s\n" /dev/disk/by-id/*(@e/'[[ ${REPLY:A} == $dev ]]'/N:t) done } fi @@ -3159,7 +3167,7 @@ simple-extract() { elif [[ "$ARCHIVE" == (#s)(https|http|ftp)://* ]] ; then if check_com curl; then - WGET_CMD="curl -k -s -o -" + WGET_CMD="curl -L -k -s -o -" elif check_com wget; then WGET_CMD="wget -q -O - --no-check-certificate" else @@ -3263,8 +3271,9 @@ vman() { #f5# View all README-like files in current directory in pager readme() { emulate -L zsh + setopt extendedglob local files - files=(./(#i)*(read*me|lue*m(in|)ut)*(ND)) + files=(./(#i)*(read*me|lue*m(in|)ut|lies*mich)*(NDr^/=p%)) if (($#files)) ; then $PAGER $files else