Completion et ZSH

Marc Chantreux marc.chantreux at ulpmm.u-strasbg.fr
Wed Jul 26 09:24:17 CEST 2006


Salut,

je suis moi aussi en train de rentrer doucement dans la completion de
zsh, je peux donc te filer le peu que j'en comprends.

Tu trouveras bien plus de détails sur :
http://zsh.dotsrc.org/Guide/zshguide06.html#l144

qui m'a bien éclairé sur la chose.

En fait, il y a 3 facons de procéder: 

- compctrl est l'ancien systeme tres inspiré de tcsh
- le nouveau systeme utilise des fonctions de base peuvent être utilisés
  pour paramètrer la completion avec zstyle. Toutefois, ces fonctions
  peuvent très bien être appellées directement. En terme de perf, je
  pense que c'est du kiff kiff. Perso, je fais ce que je peux.

> Je viens de tester les deux façons, et les deux fonctionnes
> relativement bien. Par contre j'ai noté une différence de
> comportement; compdef met la liste de tous les possibles pour une
> commande donnée en haut tandis que le zstyle mélange l'affichage avec
> tout le reste.
> 
> Donc d'après vous, quelle manière doit-on privilégier ?

les deux mon général : lis le guide et tu verras que la *bonne* facon de
faire est en fait d'écrire des fonctions utilisant compdef ou d'autres
wrappers autour du systeme de completion. Cette fonction definira des
contextes que tu pourras personnaliser avec zstyle.

maintenant, est ce que ca vaut le coup de faire un truc hautement
configurable alors que c'est pour soi? 

> trouvé aucune information concernant le parsing du fichier .ssh/config
> (lorsqu'il existe). En somme ssh <TAB> ne fait pas grand chose d'utile
> et j'ai plus vite fait de me faire une séquence de raccourcis dans
> screen. Ce que je voudrais c'est que lorsque je tape ssh <debut du
> host><TAB>, zsh me le complète avec le login du fichier config.

cat >> ~/.zshrc
autoload compinit
compinit

> Plus globalement, que retenez-vous de l'usage de zsh dans votre
> quotidien ?

j'ai passé enormement de temps sous bash (apres en avoir testé de
nombreux autres ) avant de me mettre a zsh. le gain de temps est enorme.

> Après deux bonnes journées à devoir replonger dans les
> méandres de ce shell, je me demande si toute cette puissance me sera
> vraiment utile sachant que je passe le plus clair de mon temps dans un
> autre outil fort sympathique: GNU Emacs. GNU bash (et la readline) ne
> permettent-ils pas de faire sensiblement les mêmes choses qu'un zsh
> (completion non comprise parce que là il n'y a pas photo. dailleurs
> parler de completion pour GNU bash relève du gag tant elle est inutile
> et inutilisable).

je ne connais pas le systeme d'exploitation emacs. maintenant, si tu
veux utiliser un editeur de texte pour faire ce qu'on fait avec un
shell, c'est ton droit le plus strict. 

> Que faites-vous donc avec vos ZSH (aux utilisateurs de ZSH) ?

J'utilise les terminaux (pas d'interface graphique: pour ca j'ai une
station windows) toute la journée, tous les jours.

- irssi
- mutt
- vim
- zsh
- screen
- les coreutils
- les filtres
- les outils de diag rezo

l'utilisation d'autres commandes est presque anecdotique ... warsow ?
oui ... j'avoue ;)

> Utilisez-vous vraiment toutes les fonctionnalités de ce shell ?

oui. on site souvent la completion comme un point tres fort de zsh mais
je trouve que le principal gain de temps est dans les nombreux petits
raccourcis qu'offre zsh.

Je pense par exemple aux modifiers :

http://cli.asyd.net/home/shell/zsh/modifiers

qui m'ont permis d'ecrire simplement les completion des commandes de
gestion de config. d'apache

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

> Quelles fonctionnalités vous font préferrer celui-ci à un autre ?

pas une en particulier mais une foule de choses qui font la différence.

j'aime bien les formes alternatives des structures de controle, par
exemple. boucle for :

# for f ( *.JPG ) echo mv -v $f $f:r.jpg
mv -v a.JPG a.jpg
mv -v b.JPG b.jpg

Un autre truc que j'aime bien, c'est vared qui me permet d'editer les
scripts pour les filtres sans me prendre la tete a savoir quoi
protéger. J'ai fais un billet "vared et les quotes imbriquées" que tu
trouveras la : http://khatar.phear.org/code.html

Je compte le réécrire un peu mieux avant de le balancer sur cli.

> Accessoirement, dans le temps il y avait un wiki pour zsh, il ne
> semble pas trop répondre, est-ce normal ou bien l'adresse a changé ?

heuu .. si tu parles de cli.asyd.net, l'hebergeur d'asyd a connu qq
petits problèmes.

-- 
téléphone : 03.90.24.00.19
courriel  : marc.chantreux at ulpmm.u-strasbg.fr
---------------------------------------


More information about the Shell mailing list