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

Re: custom completion for listing *.tex is not working



On Sep 3,  8:11am, Leonardo Barbosa wrote:
}
} I have tried this in order to make zsh suggests TeX files first to vi.
} 
} vi() { command vi ${*:-*.tex(om[1])} }

That doesn't do anything except cause "vi" with no arguments to attempt
to open the single most recent .tex file in the current directory; it
has no effect on tab completion.

} zstyle ':completion:*:*:.tex:*' menu yes select
} zstyle ':completion:*:*:.tex:*' file-sort time

The components of a completer style are (from the manual):

    :completion:FUNCTION:COMPLETER:COMMAND:ARGUMENT:tag

Mapping that onto the zstyles above, you've told the completion system
that a command named ".tex" should use menu selection sorted by time.
What you want is to have "vi" in that slot.

} However, it doesn't work. Zsh is listing all types of files and not
} necessarily the TeX ones first.

To do that, you adjust the set of possible tags (that last component of
the completion style).  You can see what the current set of tags for "vi"
is by:

zsh% vi <ctrl+x h>
tags in context :completion::complete:vi::
    all-files  (_files _default)

That's not very useful, so you can use the file-patterns style to add
details (see the manual under file-patterns to explain %p):

    zstyle ':completion:*:*:vi:*' file-patterns \
	'*.tex:TeX-files' '%p:all-files'

Note that because file-patterns is defining what the tags will become, the
tag part of the context pattern is always empty for this style.

Now:

torch% vi <ctrl+x h>
tags in context :completion::complete:vi::
    TeX-files  (_files _default) 
    all-files  (_files _default)

You can further refine this using the tag-order style.

} Could any of you suggest me a hands on tutorial for zsh new completion
} system?

The most comprehensive is probably the chapter on zsh completion published
in the "From Bash to Zsh" book.  There is also

   http://zsh.sourceforge.net/Guide/zshguide06.html#l156

but it doesn't really work through a single increasingly complex example
the way you might want a tutorial to do.



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