From: Aleksandrina Nikolova <infinite.craziness@gmail.com>
To: zsh-users@zsh.org
Subject: Re: mkdir completion not offering ignored patterns
Date: Mon, 13 Apr 2015 08:09:23 +1000 [thread overview]
Message-ID: <552AED13.7070806@gmail.com> (raw)
In-Reply-To: <150412101826.ZM21679@torch.brasslantern.com>
[-- Attachment #1: Type: text/plain, Size: 1690 bytes --]
On 13/04/15 03:18, Bart Schaefer wrote:
>
>> I have set the
>> completion system to ignore hidden files and only show them when there
>> are no other options (no other files in the listed directory or I
>> explicitly type . at the beginning).
> This actually should be the default behavior with no ignored-patterns set
> at all.
Oh, sorry about this, I thought the options I have set don't affect the
style in particular, but you're right. I attach a more complete .zshrc
with the options I have set as well.
> Once I got that straight I was able to find the real reason for:
>
>> It works perfectly with all
>> commands but mkdir, which simply refuses to offer hidden files, ever.
> Which turns out to be that _mkdir calls _message which breaks out of the
> loop over _completers in _main_complete, so the _ignored completer in your
> style is never reached.
>
> This would not happen if you did not have a "format" style for the context
> with tag "descriptions" (which is used as a fallback for tag "messages").
>
> _message really ought to be called only when there is no possibility of
> other completions being generated, not merely to suggest what ought to
> be typed at that point. Either that or it needs some option (the inverse
> of "_message -e"?) that tells _main_complete to continue even though a
> message is pending.
>
> There is at least a workaround:
>
> zstyle ':completion::*:mkdir::messages' format ''
Great find! Although that workaround did not work for me, the one that
did (a more ugly one, but...) was to simply remove the call to _messages:
functions[_mkdir]="${functions[_mkdir]:s/ || _message 'name of directory'/}"
And now it works great. Thank you!
[-- Attachment #2: zshrc --]
[-- Type: text/plain, Size: 4181 bytes --]
######## COMPLETION, EXPANSION & MATCHING #########
autoload -Uz compinit
compinit
autoload +X _mkdir
functions[_mkdir]="${functions[_mkdir]:s/ || _message 'name of directory'/}"
setopt extendedglob
zstyle :compinstall filename '/home/aleksandrina/.zshrc'
zstyle ':completion:*' completer _expand _complete _prefix _ignored _complete:-separators _match _approximate
zstyle ':completion:*:expand:*' add-space true
zstyle ':completion:*:prefix:*' add-space false
zstyle ':completion:*' accept-exact false
zstyle ':completion:*' accept-exact-dirs false
zstyle ':completion:*:paths' ambiguous true
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' insert-unambiguous true
zstyle ':completion:*' last-prompt true
zstyle ':completion:*' list-dirs-first true
zstyle ':completion:*' list-grouped true
zstyle ':completion:*' list-packed true
zstyle ':completion:*' list-suffixes true
zstyle ':completion:*' list-separator '#'
zstyle ':completion:*' original true
zstyle ':completion:*' path-completion true
zstyle ':completion:*' rehash true
zstyle ':completion:*' remove-all-dups true
zstyle ':completion:*' prefix-hidden false
zstyle ':completion:*' squeeze-slashes false
zstyle ':completion:*' expand suffix
zstyle ':completion:*' fake-parameters 'DISPLAY:scalar'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' list-colors ${(s.:.)~~LS_COLORS}
zstyle ':completion:*' list-prompt %Smatch %M, line %L: Hit '<TAB>' for more, or the character to insert%s
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' menu select=2
zstyle ':completion:*' auto-description true
zstyle ':completion:*' verbose true
zstyle ':completion:*' word false
zstyle ':completion:*:auto-describe' format 'specify: %d'
zstyle ':completion:*:descriptions' format '
%F{cyan}%B%d:%b%f'
zstyle ':completion:*:-command-:*' completer _expand _complete _prefix _match _approximate _history _ignored
zstyle ':completion:*:-command-:*' group-order aliases functions builtins commands
zstyle ':completion:*:-command-:*' tag-order "aliases suffix-aliases reserved-words functions:-non-ignored builtins commands" parameters functions
zstyle ':completion:*:functions-non-ignored' ignored-patterns '_*'
zstyle ':completion:*:complete-separators:*' matcher-list '' 'r:|[._-]=** r:[^[:upper:]0-9]||[[:upper:]0-9]=** r:|=** l:|=**' '+m:{[:lower:][:upper:]}={[:upper:][:lower:]}'
zstyle ':completion:*:approximate:*' max-errors 1 numeric
zstyle ':completion:*:correct:*' max-errors 3 numeric
zstyle ':completion:*:expand:*' glob true
zstyle ':completion:*:expand:*' substitute true
zstyle ':completion:*:expand:*' suffix true
zstyle ':completion:*:expand:*' tag-order expansions
zstyle ':completion:*:match:*' match-original true
zstyle ':completion:*:ignore:*' single-ignored menu
zstyle ':completion:*:cd:*' tag-order local-directories "path-directories named-directories directory-stack users"
zstyle ':completion:*:((*-|)files|(*-|)directories)' ignored-patterns '(*/|).[^/]##'
zstyle ':completion:*:jobs' prefix-needed false
zstyle ':completion:*:jobs' numbers true
zstyle ':completion:*:processes' list-colors '=(#b) #([0-9]#)*=0=01'
zstyle ':completion:*:processes' insert-ids single
(( $UID )) && zstyle ':completion:*:processes' command "ps -u $USER" \
|| zstyle ':completion:*:processes' command 'ps -e'
zstyle ':completion:*:sudo::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root"
zstyle ':completion:*' complete true # _expand_alias
zstyle ':completion:*' complete-options false # cd, pushd
zstyle ':completion:*' stop true # _history_complete_word
zstyle ':completion:*' recent-dirs-insert fallback
zstyle ':chpwd:*' recent-dirs-default true
setopt autocd cdablevars chasedots chaselinks
unsetopt autoremoveslash listtypes
setopt braceccl cshnullglob extendedglob globassign globdots globsubst histsubstpattern numericglobsort rcexpandparam rematchpcre
setopt extendedhistory histexpiredupsfirst histignoredups histignorespace histreduceblanks incappendhistory sharehistory
unsetopt histbeep
setopt interactivecomments promptsubst rcquotes
unsetopt beep
unsetopt checkjobs hup
setopt autopushd pushdignoredups pushdsilent
prev parent reply other threads:[~2015-04-12 22:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-11 5:44 Aleksandrina Nikolova
2015-04-11 20:44 ` Bart Schaefer
2015-04-11 22:52 ` Aleksandrina Nikolova
2015-04-12 17:18 ` Bart Schaefer
2015-04-12 22:09 ` Aleksandrina Nikolova [this message]
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=552AED13.7070806@gmail.com \
--to=infinite.craziness@gmail.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).