zsh/functions/_mutt

57 lines
1.8 KiB
Plaintext

#compdef muttng mutt
local curcontext="$curcontext" state line expl suf
typeset -A opt_args
_arguments -C -s \
'::recipient:->userhostalias' \
'*-a[attach file using MIME]:file attachment:_files' \
'*-b[specify a BCC recipient]:BCC recipient:->userhost' \
'*-c[specify a CC recipient]:CC recipient:->userhost' \
'-e+[specify a post-init configuration command]:post-init configuration:' \
'-f+[specify mailbox to load]:mailbox: _mailboxes' \
'-F+[specify an init file]:init file:_files' \
'-h[display help]' \
'-H+[specify a draft file for message]:draft file:_files' \
'-i+[specify file to include in message]:include file:_files' \
'-m+[specify default mailbox type]:mailbox type:(mbox MMDF MH Maildir)' \
'-n[bypass system configuration]' \
'-p[resume postponed message]' \
'-R[open in read-only mode]' \
'-s+[specify a subject]:subject:' \
'-v[display mutt version]' \
'-x[emulate mailx compose]' \
'-y[start listing mailboxes]' \
'-z[start only if new messages]' \
'-Z[open first mailbox with new mail]' && return 0
if [[ "$state" = userhostalias ]]; then
if compset -P '*@'; then
_description hosts expl 'remote host name'
_hosts "$expl[@]" -q -S, && return 0
else
compset -S '@*' || suf='@'
_description users expl 'login name'
_users "$expl[@]" -q -S "$suf"
# added by asyd (20020304)
if [ -r ~/.muttrc ]; then
# use cache
if ( [[ ${+_list_alias} -eq 0 ]] || _cache_invalid mutt_alias ) &&
! _retrieve_cache mutt_alias; then
_list_alias=(${(o)${${(M)${(f)"$(< ~/.muttrc)"}##alias*}/alias /}%% *})
_store_cache mutt_alias _list_alias
fi
_wanted alias expl 'alias name' compadd -q -S, $_list_alias
fi
return 0
fi
fi
return 1