2010-08-04 6 views
3

Si j'ai les fichiers "quelquechose1" et "quelquechose2" dans un dossier, comment compléter l'onglet de ZSH en remplissant seulement les caractères communs? Par exemple, je taperais:Achèvement de l'onglet ZSH - ne pas remplir le premier fichier

som<Tab> 

et je le veux remplir avec « quelque chose », et non « something1 ».

zstyles actuel:

zstyle ':completion:*' special-dirs true 
zstyle ':completion::complete:*' use-cache on 
zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST 
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} 
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s' 
zstyle ':completion:*' menu select=1 _complete _ignored _approximate 
zstyle -e ':completion:*:approximate:*' max-errors \ 
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' 
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate 
zstyle -e ':completion:*:approximate:*' max-errors \ 
zstyle ':completion:*:expand:*' tag-order all-expansions 
zstyle ':completion:*' verbose yes 
zstyle ':completion:*:descriptions' format '%B%d%b' 
zstyle ':completion:*:messages' format '%d' 
zstyle ':completion:*:warnings' format 'No matches for: %d' 
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b' 
zstyle ':completion:*' group-name '' 
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters 
# zstyle ':completion:*:processes' command 'ps -au$USER' 
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' 
#zstyle ':completion:*:processes' command 'ps ax -o pid,s,nice,stime,args | sed "/ps/d"' 
zstyle ':completion:*:*:kill:*:processes' command 'ps --forest -A -o pid,user,cmd' 
zstyle ':completion:*:processes-names' command 'ps axho command' 
#zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html' 
zstyle ':completion:*' hosts $(awk '/^[^#]/ {print $2 $3" "$4" "$5}' /etc/hosts | grep -v ip6- && grep "^#%" /etc/hosts | awk -F% '{print $2}') 
zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \ 
zstyle ':completion:*:functions' ignored-patterns '_*' 
zstyle ':completion:*:*:*:users' ignored-patterns \ 
zstyle ':completion:*:scp:*' tag-order \ 
zstyle ':completion:*:scp:*' group-order \ 
zstyle ':completion:*:ssh:*' tag-order \ 
zstyle ':completion:*:ssh:*' group-order \ 
zstyle '*' single-ignored show 
+0

Que obtenez-vous si vous entrez 'zstyle' ou' grep zstyle ~/.zshrc' à l'invite de commande. J'ai 'zstyle ': achèvement: *' menu select = 0' comme un paramètre et même si je ne pense pas que cela a un effet sur ce que vous demandez, j'obtiens le comportement que vous recherchez. –

+0

J'ai essayé cela, ne semblait pas fonctionner. – victor

Répondre

0

Découvrez zshoptions homme. Il est assez bien organisé de sorte que toutes les options d'achèvement sont dans une section "Achèvement". Je pense que l'option que vous cherchez est list_ambiguous. si oui, il vous suffit d'ajouter dans la ligne

setopt list_ambiguous

à votre .zshrc

0

Bonnes nouvelles: cela est tout à fait faisable, et vous ne serez pas à vous soucier de zstyles. (Je crois.) Mauvaise nouvelle: c'est un peu difficile de répondre.

Une excellente explication des options de complétion zsh spécifiques liées au problème que vous essayez de résoudre peut être trouvée dans this specific section du Guide de l'utilisateur de zsh.

De plus, vous pouvez faire un 'man zshoptions' et rechercher des options spécifiques à l'achèvement. La réponse ci-dessus mentionnant list_ambiguous fait partie de la réponse, mais je ne crois pas qu'elle aborde l'ensemble de l'image. Une question clé que vous devrez vous poser est: "Qu'est-ce que je veux faire après avoir frappé TAB la première fois et zsh insère seulement les caractères communs?" Vous pouvez avoir zsh faire beaucoup de choses différentes sur le deuxième appuyez sur TAB ou même le troisième. L'utilisation de diverses combinaisons des options d'achèvement ZSH peut donner une grande variété de résultats utiles. Tout dépend de ce que vous voulez.

Bonne chance!