[zsh] complétions

Le
David LE BOURGEOIS
Bonjour.

Une petite question concernant la complétion sous Zsh.

Prenons une commande de base :

$ tar cvjf dir-20080605.tar.bz2 dir-20080605

La complétion fonctionne sur ces commandes :

$ tar cvjf dir-20080605.tar.bz2 dir*(/)^I
==> dir-20080605/

$ tar cvjf dir-20080605{.tar.bz2,}^I
==> dir-20080605.tar.bz2 dir-20080605

Mais cette combinaison ne fait fonctionner que la complétion sur
les accolades :

$ tar cvjf dir*(/){.tar.bz2,}^I
==> dir*(/).tar.bz2 dir*(/)

Arrive donc le message d'erreur :

zsh: bad pattern: dir*(/).tar.bz2

Je suis alors obligé d'effectuer la complétion en trois temps :

$ tar cvjf dir*(/)^I
==> dir-20080605/^H
==> dir-20080605{.tar.bz2,}^I

Connaissez-vous un moyen de saisir ou de compléter en une seule
fois la combinaison 'dir*(/){tar,}' ?

Merci d'avance pour vos lumières.

--
David LE BOURGEOIS
E-mail : david.lebourgeois (at) free.fr
Jabber : david.lebourgeois (at) jabber.fr
PGP : http://david.lebourgeois.free.fr/pgp/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #6786901
David LE BOURGEOIS wrote in message
Connaissez-vous un moyen de saisir ou de compléter en une seule
fois la combinaison 'dir*(/){tar,}' ?


Je ne pense pas que ce genre de test soit possible : les qualificatifs entre
parenthèses ne sont autorisés qu'à la fin, pour filtrer les fichiers
produits par le glob.

Vincent Lefevre
Le #6787411
Dans l'article Nicolas George
David LE BOURGEOIS wrote in message
Connaissez-vous un moyen de saisir ou de compléter en une seule
fois la combinaison 'dir*(/){tar,}' ?


Je ne pense pas que ce genre de test soit possible : les
qualificatifs entre parenthèses ne sont autorisés qu'à la fin, pour
filtrer les fichiers produits par le glob.


Pour préciser, il y a ici deux types d'expansions: une "brace expansion"
(qui intervient en premier), puis une "filename generation". Donc on va
obtenir d'abord avec la "brace expansion":

dir*(/)tar dir*(/)

et là, le premier mot est incrrect puisque le (/) doit se situer à la
fin du mot.

Note: il ne s'agit pas de complétion, mais d'expansion (par défaut,
[Tab] est bindé sur expand-or-complete).

--
Vincent Lefèvre 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


Publicité
Poster une réponse
Anonyme