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

Re: Completion of dirs confused over cursor position



On 2003-01-09 at 18:02 +0300, Borzenkov Andrey wrote:
> function _foo {
> 	_files -W /some/directory
> }
> compadd _foo commandname
> 
> does it work?

No:
 compadd: can only be called from completion function

However, that's looking much simpler than anything in the manual pages
or the examples I looked at in the distributed completions.  :^)  I was
getting lost in functions calling functions calling functions
maintaining various levels of state, with reference man-pages and no
tutorial.

Is there a tutorial somewhere which I've missed?  The manual pages are
some of the most daunting I've seen.  I do read manual-pages, but
looking at these I can't get a mental handle on the frameword and what
fits where, to get started.

> And doing it automatically:
> 
> echo > ~/functions/_foo << EOF
> #compadd commandname
> _files -W /some/directory
> EOF

That general structure I had (although I suspect that you meant cat,
since echo doesn't use its stdin).  And the supplied versions use
"#compdef".  If I use "#compadd", it's not auto-loaded.

> fpath=($fpath ~/functions)
> compinit

And that I had.

> the last part obviously goes into .zshrc or whatever. Try running
> compinstall as well.

Yup, tried that.

Okay, logging in again, forcing a rebuild of .zcompdump (after changing
to "#compdef", it now works.  :^)

Thanks,

-Phil



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