Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: mkdir completion not offering ignored patterns
- X-seq: zsh-users 20148
- From: Aleksandrina Nikolova <infinite.craziness@xxxxxxxxx>
- To: zsh-users@xxxxxxx
- Subject: Re: mkdir completion not offering ignored patterns
- Date: Mon, 13 Apr 2015 08:09:23 +1000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; bh=Yb79BxtLDtkizybH5p3+GiZRVnEP2bWFaCmu8i+eFCA=; b=FqY8+xQMF3uXudgvUWyGPQEZkKzDeFENnHhU/+IbrocdbpjdcaiKWCiNTJk7wYhss+ 0Dh5zJ9lc7Ap6wfS7mXc08FlVJhes7uE1TjD9X3Ip7/DRHoCVeSwIXvkFQRtkJU4YXJH 3FROczBJCV6zT6fqhVftUFt+nPdlHOPIJfQsLc7bD5plNTvCjRYd0jIXQOMNRH3fTm4P +a2hpUqYoQ7hUnGJg1Cu658pL8X7n91Tz8PSsvI56IOY1V2n+7T9tiY6b4wWUmwLl4YZ mO6OQwxqcdjGfkQrzJiFK7aSiJO/gTq6QjMc2RMCZuwJ1QjOPhSd8GwvTg23bRqoUvzj 9c/g==
- In-reply-to: <150412101826.ZM21679@torch.brasslantern.com>
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- References: <5528B4C2.3010001@gmail.com> <150411134410.ZM27516@torch.brasslantern.com> <5529A5C2.3090603@gmail.com> <150412101826.ZM21679@torch.brasslantern.com>
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!
######## 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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author