Alors je viens de la tester sous bash, et je suis déçu. Effectivement, elle ne complète que sur ce qui lui convient.
Zsh a la décence de compléter sur autre chose quand ça ne tombe pas juste.
Sous bash : allergy@hali:/tmp/ic$ ls
document.odt fichier.zip
allergy@hali:/tmp/ic$ unzip d[TAB]... Et il ne complète pas.
Sous zsh, il constate qu'aucun fichier d*.zip n'est présent, alors il complète avec ce qu'il trouve, c'est à dire document.odt.
Autre chose que j'aime : il complète également dans la partie "chemin" d'un hôte distant lors d'un scp. Très pratique, à condition d'utiliser les clés pour ssh :)
Enfin, il permet de compléter en une seule fois une commande du type : tail -f /v/l/a/er[TAB] en tail -f /var/log/apache2/error.log.
Il s'arrête éventuellement à la première ambiguïté et il y met le curseur : allergy@hali:~$ ls /tmp/ic/d*/*
/tmp/ic/dir1/fichier /tmp/ic/dir2/fichier (d1 ou d2)
allergy@hali:~$ cat /t/i/d/f[TAB] devient : allergy@hali:~$ cat /tmp/ic/dir / f (J'ai souligné la position du curseur).
Il ne reste plus qu'à entrer "1" ou "2", et refaire [TAB].
[^] # Re: la complétion dans bash ; eshell
Posté par Amand Tihon (site web personnel) . En réponse à la dépêche À la (re)découverte de Zsh. Évalué à 7.
Alors je viens de la tester sous bash, et je suis déçu. Effectivement, elle ne complète que sur ce qui lui convient.
Zsh a la décence de compléter sur autre chose quand ça ne tombe pas juste.
Sous bash :
allergy@hali:/tmp/ic$ ls
document.odt fichier.zip
allergy@hali:/tmp/ic$ unzip d[TAB]... Et il ne complète pas.
Sous zsh, il constate qu'aucun fichier d*.zip n'est présent, alors il complète avec ce qu'il trouve, c'est à dire document.odt.
Autre chose que j'aime : il complète également dans la partie "chemin" d'un hôte distant lors d'un scp. Très pratique, à condition d'utiliser les clés pour ssh :)
Enfin, il permet de compléter en une seule fois une commande du type :
tail -f /v/l/a/er[TAB] en tail -f /var/log/apache2/error.log.
Il s'arrête éventuellement à la première ambiguïté et il y met le curseur :
allergy@hali:~$ ls /tmp/ic/d*/*
/tmp/ic/dir1/fichier /tmp/ic/dir2/fichier (d1 ou d2)
allergy@hali:~$ cat /t/i/d/f[TAB] devient :
allergy@hali:~$ cat /tmp/ic/dir / f (J'ai souligné la position du curseur).
Il ne reste plus qu'à entrer "1" ou "2", et refaire [TAB].