![](https://secure.gravatar.com/avatar/84390574cdfa35f9aead2fc7f9caf6b9.jpg?s=120&d=mm&r=g)
hello, N'ayant jamais eu le courage de m'attaquer serieusement au man zsh relatif a la completion, je travaille avec les qq recettes de cuisine bien pratiques choppés a droite ou a gauche. par exemple, j'ai compdef _man superman compdef 'compadd ~/.mutt/dratfs/*(:r:t)' mms compdef 'compadd /home/services/qemu/*(:r:t)' vm_boot compdef 'compadd /etc/apache2/mods-available/*(:r:t)' a2enmod compdef 'compadd /etc/apache2/mods-enabled/*(:r:t)' a2dismod compdef 'compadd /etc/apache2/sites-available/*(:r:t)' a2ensite compdef 'compadd /etc/apache2/sites-enabled/*(:r:t)' a2dissite compdef 'compadd ~/local/etc/zsh/rc/*(:t)' edit_zsh_rc ok ... maintenant, soit la fonction remote_screen_sessions qui m'affiche la liste des sessions screen d'une machine distante (j'ai sué pour trouver le nom ...). remote_screen_sessions () { ssh $1 screen -ls | perl -nE ' /^\s+\d+\.(?<screenname>\S+)\s+\(/ and say $+{screenname} ' } j'aimerais pouvoir faire compdef 'compadd `remote_screen_sessions www.google.com`' www.google.com ca ne marche pas ... meme quand j'ai mon agent qui tourne et que ma clef est authorized sur www.google.com. une idée? marc .oO IDLE BREAK P0WN3D Oo.
![](https://secure.gravatar.com/avatar/e29c02380d60c6483271929286528a4e.jpg?s=120&d=mm&r=g)
Salut, On Thu, Nov 11, 2010 at 10:38:41AM +0100, Marc Chantreux wrote:
compdef 'compadd /etc/apache2/mods-available/*(:r:t)' a2enmod compdef 'compadd /etc/apache2/mods-enabled/*(:r:t)' a2dismod compdef 'compadd /etc/apache2/sites-available/*(:r:t)' a2ensite compdef 'compadd /etc/apache2/sites-enabled/*(:r:t)' a2dissite
Tu devrais plus avoir besoin de ceux-là si ton zsh est récent, _a2utils les prend en charge.
compdef 'compadd `remote_screen_sessions www.google.com`' www.google.com
ca ne marche pas ... meme quand j'ai mon agent qui tourne et que ma clef est authorized sur www.google.com.
Chez moi ça marche : compdef 'compadd $(remote_screen_sessions localhost)' kikoo Par contre si je mets comme toi www.google.com, ça marche pas, il tente de compléter avec autre chose : $ www.google.com ^x^h tags in context :completion::complete:iceweasel:: argument-rest options (_arguments _x_arguments _mozilla (eval)) tags in context :completion::complete:iceweasel:argument: prefixes (_urls _mozilla (eval)) tags in context :completion::complete:iceweasel:argument-rest: all-files (_files _mozilla (eval)) En fait, c'est un alias de suffixe qui me donne ce comportement : alias -s com=iceweasel Regarde si t'as pas un truc comme ça qui traîne et « unalias -s com » devrait te corriger ça. En espèrant que ça t'aide. -- Anthony CHARLES
![](https://secure.gravatar.com/avatar/84390574cdfa35f9aead2fc7f9caf6b9.jpg?s=120&d=mm&r=g)
On Thu, Nov 11, 2010 at 01:21:15PM +0100, Anthony Charles wrote:
compdef 'compadd /etc/apache2/mods-available/*(:r:t)' a2enmod compdef 'compadd /etc/apache2/mods-enabled/*(:r:t)' a2dismod compdef 'compadd /etc/apache2/sites-available/*(:r:t)' a2ensite compdef 'compadd /etc/apache2/sites-enabled/*(:r:t)' a2dissite
Tu devrais plus avoir besoin de ceux-là si ton zsh est récent, _a2utils les prend en charge.
je me dis parfois qu'il faudrait que je reprenne ma conf de 0 pour réintégrer que les trucs qui me servent vraiment ... en fait je me sers plus de mon .zshrc comme code snippets qu'autre chose :)
compdef 'compadd `remote_screen_sessions www.google.com`' www.google.com
Chez moi ça marche : compdef 'compadd $(remote_screen_sessions localhost)' kikoo
haha ... la belle jambe ;) ... une histoire d'alias donc ... moi j'ai ca: $ alias www.google.com alias www.google.com='ssh -t www.google.com new_screen_for marc' pour info quand je dis "ca marche pas" c'est: il complete avec des noms de fichier. cordialement marc
![](https://secure.gravatar.com/avatar/e29c02380d60c6483271929286528a4e.jpg?s=120&d=mm&r=g)
On Fri, Nov 12, 2010 at 08:52:59AM +0100, Marc Chantreux wrote:
haha ... la belle jambe ;) ... une histoire d'alias donc ... moi j'ai ca:
$ alias www.google.com alias www.google.com='ssh -t www.google.com new_screen_for marc'
pour info quand je dis "ca marche pas" c'est: il complete avec des noms de fichier.
Essaie de taper : $ www.google.com ^x^h avec un espace avant de faire ton ^x^h, il va te montrer avec quoi il essaie de compléter. Comme zsh est bien fait, j'imagine qu'il utilise _ssh pour compléter le reste de ta commande, ce que tu ne veux pas dans ce cas. À priori la solution la plus simple, c'est « setopt completealiases » qui transforme tes alias en commande à part (cf. man zshoptions et le zshguide). Par contre, ça casse la complétion de tes autres alias, tu es alors obligé de définir manuellement leur complétion via compdef. -- Anthony CHARLES
participants (2)
-
Anthony Charles
-
Marc Chantreux