From: Leonardo Barbosa <barbosa.leonardo@gmail.com>
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: zsh-users@zsh.org
Subject: Re: custom completion for listing *.tex is not working
Date: Mon, 9 Sep 2013 08:49:59 -0300 [thread overview]
Message-ID: <CAMXWGTyaZ+YR6pZG8=BLThjNhjZtO1kzW03fRHv3EMeaNk=_ug@mail.gmail.com> (raw)
In-Reply-To: <130903073216.ZM27351@torch.brasslantern.com>
Thanks for you prompt answer, Bart. I have tried your suggestion.
zstyle ':completion:*:*:vi:*' file-patterns '*.tex:TeX-files' '%p:all-files'
However, by doing so, it only through TeX files. So if <tab> multiples
times it keeps suggesting the same TeX files, repeatedly, to me. I'd
like TeX files to be priority, but, in case of more <tab>'s, it cycles
through other files in the menu, too.
I saw you example is similar to this example in the zsh manual:
zstyle ':completion:*:*:rm:*' file-patterns \ '*.o:object-files' '%p:all-files'
So in theory, it should have worked. Any idea?
An just one more question, how can i make zsh to highlight the
selected file in the menu while cycling through files?
Best
Leo
On Tue, Sep 3, 2013 at 11:32 AM, Bart Schaefer
<schaefer@brasslantern.com> wrote:
> 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.
next prev parent reply other threads:[~2013-09-09 11:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-03 11:11 Leonardo Barbosa
2013-09-03 14:32 ` Bart Schaefer
2013-09-09 11:49 ` Leonardo Barbosa [this message]
2013-09-10 15:08 ` Bart Schaefer
2013-09-10 16:31 ` Peter Stephenson
2013-09-10 16:45 ` Bart Schaefer
2013-09-06 13:24 ` zzapper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMXWGTyaZ+YR6pZG8=BLThjNhjZtO1kzW03fRHv3EMeaNk=_ug@mail.gmail.com' \
--to=barbosa.leonardo@gmail.com \
--cc=schaefer@brasslantern.com \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).