Zsh Mailing List Archive
Messages sorted by:
Re: completion but extra options allowed
- X-seq: zsh-users 2913
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: Andy Spiegl <zsh.Andy@xxxxxxxxx>, zsh-users@xxxxxxxxxxxxxx
- Subject: Re: completion but extra options allowed
- Date: Fri, 11 Feb 2000 17:55:55 +0000
- In-reply-to: <20000210195143.A26109@xxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxxxxxx; run by ezmlm
- References: <20000210153411.A27005@xxxxxxxxxxxx> <1000210175857.ZM6927@xxxxxxxxxxxxxxxxxxxxxxx> <20000210195143.A26109@xxxxxxxxxxxx>
On Feb 10, 7:51pm, Andy Spiegl wrote:
} Subject: Re: completion but extra options allowed
} Hi Bart,
} > This means that you type "mutt -f +<TAB>" and zsh will complete files in
} > your $HOME/Mail directory following the + sign. Mutt understands the + as
} > an abbreviation for the mail directory. In the absence of a +, zsh just
} > completes file names after "mutt -f".
} This is exactly what I am trying to teach zsh-3.1.6.pws16 to do.
Yes, I noticed just after posting that this isn't actually handled by
_mutt and _mailboxes. In attempting to do something with this, I found
some rather strange things going on in the guts of the completion.
_mutt calls _arguments in the expected way.
_arguments calls "_description arguments expl mailbox" which sets expl
to (-J -default-).
_arguments then calls "_mailboxes -J -default-" which (after setting up
the cache) calls "_wanted files expl 'mailbox specification'" which again
sets expl to (-J -default-).
_mailboxes then calls "compadd -J -default- -J -default- - ..." which
seems a bit odd. The first -J -default- is from "$@" and the second is
of course "$expl[@]". Is that really doing the right thing?
} And it doesn't expand local filenames either:
} eule:~>cd Mail
} eule:~/Mail>mutt -f a<TAB>
I think that's intentional on the grounds that files not in the mail
directory are not likely to be mail files. It should probably be set
by a style, if the 'mailbox' style won't already work.
} BTW, _mailboxes expects the "mailboxes" definition to be in ~/.muttrc. I
} had to change it, because I've got it in ~/.mutt/local, which is sourced
} from ~/.muttrc. The same goes for the aliases. :-(
You don't need to edit _mailboxes, you just need
somewhere in your startup files. You can do the same for pinedirectory
and maildirectory if they aren't ~/mail and ~/Mail (respectively).
Oh, wait -- _mutt is itself stomping $muttrc. That's wrong; I can at
least fix that part:
@@ -1,6 +1,6 @@
-local curcontext="$curcontext" state line muttrc="~/.muttrc" ret=1
+local curcontext="$curcontext" state line ret=1
_arguments -C \
Bart Schaefer Brass Lantern Enterprises
Messages sorted by: