typeset -Ag abbreviations abbreviations=( '...' '../..' '....' '../../..' 'BG' '& exit' 'WC' '| wc' 'GR' '|& grep ' 'HD' '| head' 'HL' ' --help |& less -r' 'LS' '| less' 'LR' '|& less -r' 'NL' '&>/dev/null' 'SL' '| sort | less' 'SU' '| sort -u' 'TL' '| tail' 'VI' '|& vim -' ) magic-abbrev-expand() { local MATCH LBUFFER=${LBUFFER%%(#m)[_a-zA-Z0-9]#} LBUFFER+=${abbreviations[$MATCH]:-$MATCH} zle self-insert } no-magic-abbrev-expand() { LBUFFER+=' ' } zle -N magic-abbrev-expand zle -N no-magic-abbrev-expand bindkey " " magic-abbrev-expand bindkey "^x " no-magic-abbrev-expand bindkey -M isearch " " self-insert # vim:ft=zsh