zshrc: Fix `salias' wrt parameter scope
[grml-etc-core.git] / etc / zsh / zshrc
index 68acd4e..795cc37 100644 (file)
@@ -406,6 +406,7 @@ check_com() {
 salias() {
     emulate -L zsh
     local only=0 ; local multi=0
+    local key val
     while [[ $1 == -* ]] ; do
         case $1 in
             (-o) only=1 ;;
@@ -596,7 +597,7 @@ typeset -U path cdpath fpath manpath
 
 # Load a few modules
 is4 && \
-for mod in complist deltochar mathfunc ; do
+for mod in parameter complist deltochar mathfunc ; do
     zmodload -i zsh/${mod} 2>/dev/null || print "Notice: no ${mod} available :("
 done
 
@@ -1040,15 +1041,14 @@ zleiab() {
     LBUFFER+=${abk[$MATCH]:-$MATCH}
 }
 
-zle -N zleiab && bindkey ",." zleiab ## KEYB!
+zle -N zleiab
 
 help-show-abk()
 {
   zle -M "$(print "Type ,. after these abbreviations to expand them:"; print -a -C 2 ${(kv)abk})"
 }
 
-#k# Display list of abbreviations that expand when followed by ,.
-zle -N help-show-abk && bindkey '^xb' help-show-abk ## KEYB!
+zle -N help-show-abk
 
 # press "ctrl-e d" to insert the actual date in the form yyyy-mm-dd
 insert-datestamp() { LBUFFER+=${(%):-'%D{%Y-%m-%d}'}; }
@@ -1128,7 +1128,7 @@ inplaceMkDirs() {
 }
 
 #k# mkdir -p <dir> from string under cursor or marked area
-zle -N inplaceMkDirs && bindkey '^xM' inplaceMkDirs ## KEYB!
+zle -N inplaceMkDirs
 
 #v1# set number of lines to display per page
 HELP_LINES_PER_PAGE=20
@@ -1249,8 +1249,7 @@ help-zle()
     help_zle_sln=$((help_zle_sln + HELP_LINES_PER_PAGE))
     zle -M "${(F)help_zle_lines[sln,help_zle_sln-1]}"
 }
-#k# display help for keybindings and ZLE
-zle -N help-zle && bindkey '^xz' help-zle # note: cycle pages with consecutive use of '^xz' ## KEYB!
+zle -N help-zle
 
 ## complete word from currently visible Screen or Tmux buffer.
 if check_com -c screen || check_com -c tmux; then
@@ -1292,7 +1291,7 @@ function zrcautozle() {
 }
 
 function zrcgotwidget() {
-    (( ${+widgets[$i]} ))
+    (( ${+widgets[$1]} ))
 }
 
 function zrcgotkeymap() {
@@ -1315,7 +1314,7 @@ zstyle ':completion:hist-complete:*' completer _history
 typeset -ga grml_missing_features
 
 function zrcbindkey() {
-    if (( ARGC && ${+widgets[${argv[-1]}]} )); then
+    if (( ARGC )) && zrcgotwidget ${argv[-1]}; then
         bindkey "$@"
     fi
 }
@@ -1394,6 +1393,7 @@ bind2maps       viins vicmd -- Right  vi-forward-char
 bind2maps       viins vicmd -- Right  vi-forward-char
 
 if zrcgotkeymap menuselect; then
+    #m# k Shift-tab Perform backwards menu completion
     bind2maps menuselect -- BackTab reverse-menu-complete
 
     #k# menu selection: pick item but stay in the menu
@@ -1408,6 +1408,13 @@ if zrcgotkeymap menuselect; then
     zrcbindkey -M menuselect '^o' accept-and-infer-next-history
 fi
 
+#k# Display list of abbreviations that expand when followed by ,.
+zrcbindkey ",." zleiab
+zrcbindkey '^xb' help-show-abk
+zrcbindkey '^xM' inplaceMkDirs
+#k# display help for keybindings and ZLE
+zrcbindkey '^xz' help-zle
+
 #k# Insert files and test globbing
 zrcbindkey "^xf" insert-files # C-x-f
 
@@ -1438,13 +1445,6 @@ zrcbindkey "\e[6~" history-beginning-search-forward-end  # PageDown
 #k# Insert Unicode character
 zrcbindkey '^xi' insert-unicode-char
 
-#m# k Shift-tab Perform backwards menu completion
-if [[ -n "$terminfo[kcbt]" ]]; then
-    zrcbindkey "$terminfo[kcbt]" reverse-menu-complete
-elif [[ -n "$terminfo[cbt]" ]]; then # required for GNU screen
-    zrcbindkey "$terminfo[cbt]"  reverse-menu-complete
-fi
-
 #k# Toggle abbreviation expansion on/off
 zrcbindkey '^xA' grml_toggle_abbrev
 zrcbindkey "^x^h" commit-to-history