Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: autoload



On 09/13/2015 07:38 PM, Bart Schaefer wrote:
Would it make more sense written like ${^fpath} ?  It's the operator
that causes an array (a b c) to expand to e.g. a/* b/* c/* instead of
to a b c/* -- cf. the rc_expand_param setopt.
Yikes, that's brand new to me, I only know the caret as negation. So this is a feature specific--it seems--to getting useful path expansion. Just echoing some dirs, I get the
point loud and clear. That's powerful.
(N) means nonomatch, so empty directories disappear from the result
instead of causing a globbing error.  (-) is follow symlinks, so that
combined with (N) any dangling symlinks also disappear.  These both are
documented in the "Glob Qualifiers" subsection of the manual.

Nuts, I scanned that page top to bottom looking at random, and there it is near the
very bottom. 'NULL_GLOB' it says.  Thanks for the explanation.
Well, yes, but that only autoloads Sebastian's navigation functions
(and any others whose names happen to start with "n-").

Of course, I'm just experimenting for now.  Getting the feel ...
You don't autoload from a location, you autoload a name and the fpath
is searched for it.
Ah! ... I'm subconsciously thinking in terms of finding commands. No!

   autoload /usr/local/share/zsh/site-functions/n-*(N-.:t)


... is a kind of trick--we are grabbing the names of files and using them as the names of functions to be found later, but we are NOT actually passing definitions. Yes?

autoload n-list n-cd n-env n-kill n-panelize n-options n-aliases n-functions n-history n-preview

... is actually more 'honest' since all autoload really knows at that point is names. Definitions
will be retrieved later. Yes?

(zcompile on the other hand DOES load from locations rather than from
a path search, so if you use zcompile + autoload -w you get the path
stripping.)

Sounds like a good idea, would that not be preferable? Why not prime the pump with both the name and the location? I'm over my head of course, but it seems that the '(...(N-.:t)' style command could notify autoload of both name and location in one go thus obviating the need to rummage through $fpath. As always, if that's not done there will be a good reason.




Messages sorted by: Reverse Date, Date, Thread, Author