Sortie de ZSH 4.2.0

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
0
25
mar.
2004
Communauté
La dernière version stable (4.2.0) de zsh vient de sortir après plus de 2 ans de développement.
Elle apporte beaucoup de nouveautés :
- nouvelles fonction des complétions : mplayer, tidy, xsltproc, mozilla, ...
- support de bash-completion : la fonction bashcompinit permet d'utiliser les fonctions de complétions bash
- le support des "alias suffix" : association d'une extension de fichier à un programme ou à une commande, exemple :
"alias -s pdf=xpdf", permet d'exécuter xpdf pour lire le fichier toto.pdf simplement en tapant "./toto.pdf" dans une console.

Et encore plein d'autres choses à découvrir. Pour rappel, ZSH est un shell (interpréteur de commande) basé sur ksh, ce qui lui confère un langage de programmation très évolué si on le compare à bash, ou sh par exemple. Ainsi dans la rédaction d'un script, on peut se passer de programmes comme tail, sed, awk, grep, ...
Il dispose d'un client ftp intégré, d'un éditeur en ligne, ...
Dans les nouveautés, une fonction de gestion des dates (datetime), une interface tcp : ztcp, un module de socket zsocket, une calculatrice en ligne : zcalc, une interface pour la bibliothèque pcre (Perl Compatible Regular Expression), ...

ZSH possède un système de complétion très évolué, qui peut se comparer au désormais célèbre bash-completion, mais en plus évolué. Il est d'ailleurs capable d'émuler (donc remplacer) parfaitement sh, correctement bash et ksh.

Dans cette nouvelle version les "slackwaristes" seront content de trouver une fonction de complétion pour pkgtool, ils rejoignent ainsi les distributions dont le système de paquets est supporté par ZSH : dpkg, apt, urpmi, rpm, *BSD. Les gentooistes, quant à eux, disposent de ma fonction intégrée au portage de ZSH, elle ne fait pas partie de la version 4.2.0 car j'ai eu le flemme de la proposer.

À vos compilos, emerge, apt-get, swaret, ou ce ce que vous voulez.

Aller plus loin

  • # Re: Sortie de ZSH 4.2.0

    Posté par  (site web personnel) . Évalué à 3.

    "Il est d'ailleurs capable d'émuler (donc remplacer) parfaitement sh, correctement bash et zsh"

    C'est dingue ça, ZSH est capable d'émuler zsh !
  • # Re: Sortie de ZSH 4.2.0

    Posté par  (site web personnel) . Évalué à 3.

    J'ai pas compris...

    "ZSH possède un système de complétion très évolué, qui peut se comparer au désormais célèbre bash-completion, mais en plus évolué. Il est d'ailleurs capable d'émuler (donc remplacer) parfaitement sh, correctement bash et zsh."

    Si j'ai bien compris, ZSH est capable d'émuler ZSH ?

    Y'aurait pas une co(q)uille ?

    Axel
  • # Re: Sortie de ZSH 4.2.0

    Posté par  (site web personnel) . Évalué à 5.

    "alias -s pdf=xpdf", permet d'exécuter xpdf pour lire le fichier toto.pdf simplement en tapant "./toto.pdf" dans une console
    Hmmm ça n'aurait pas été plus intelligent d'associer les commandes aux types MIME (comme le font les gestionnaires de fichiers Linux) plutôt qu'aux suffixes (comme le fait l'explorateur Windows) ?
    Si j'enregistre mon PDF avec une extension .alakon, hop plus d'alias. Alors qu'avec un petit file -bi ./toto.pdf.alakon il se rend compte que c'est un application/pdf et est capable de l'ouvrir avec xpdf...
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 6.

      en meme temps faut penser qu'il fait de la completion dessus. Donc plus tu perfectionne plus ton shell est long a repondre.

      Contrairement à un navigateur un shell est maitrise par celui qui l'utilise amha. Donc ce ne me semble pas handicapant. Enfin c'est vraiment le genre de chose qui me gene.
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 0.

      Tu pourrais avoir un shell ou tu dirais "associe moi les application/x-pdf avec xpdf" qui fonctionnerait pas quand ton fichier s'appellerait toto.alacon....
      Il y a deux méthodes pour donner un type mime à un fichier, soit tu regardes le contenu du fichier pour déterminer ce que c'est, dans ce cas tu as le comportement que tu désires, soit tu regardes uniquement l'extension, et dans ce cas, tu ne gagnes pas grand chose par rapport à la syntaxe actuelle
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 1.

      voila qui me plairait
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  (site web personnel) . Évalué à 2.

      Je viens de tester le coup du alias .
      Ca a l'air bien, sauf que si je fais ./tot TAB , il ne me le complète pas
      en ./toto.pdf .
      Pour l'instant, ma feinte c'est de faire ./ tot TAB, puis d'aller virer l'espace.
      Pas cool quand même.
      • [^] # Re: Sortie de ZSH 4.2.0

        Posté par  . Évalué à 1.

        Tu n'as pas besoin du ./ !

        tot et il te propose la completion de tout les suffix + des commandes habituelle. C'est tres pratique je trouve. Je vois pas la raison du ./ personellement
        • [^] # Re: Sortie de ZSH 4.2.0

          Posté par  . Évalué à 5.

          Moi je vois très bien l'intérêt du ./, parce qu'il ne me viendrait pas à l'idée de mettre . dans mon $PATH...
          • [^] # Re: Sortie de ZSH 4.2.0

            Posté par  . Évalué à 2.

            Moi il ne me viendrait pas à l'idée d'utiliser un $PATH... rien ne vaut un bon /usr/local/X11R6/share/relocal/samère/bin/xpdf des familles...
          • [^] # Re: Sortie de ZSH 4.2.0

            Posté par  . Évalué à 1.

            Allo ici la terre ! on ne complete pas des commandes mais des noms de fichiers... Ton PATH il en a rien a foutre le zsh dans ce cas la.

            Aucun rapport avec le schmilblik
          • [^] # Re: Sortie de ZSH 4.2.0

            Posté par  (site web personnel, Mastodon) . Évalué à 0.

            Je dois être stupide alors. Ben oui, quand tu programme (un script, un exe), c'est vachement pratique d'appeler ton programme par son nom de base !
            • [^] # Re: Sortie de ZSH 4.2.0

              Posté par  (site web personnel) . Évalué à 4.

              * Si tu met '.' au début de ton PATH

              => C'est la catastrophe : N'importe qui peut faire

              echo 'rm -rf ${HOME}' > /tmp/ls

              Et toi, tu risque gros en faisant

              cd /tmp
              ls

              * Si tu met '.' à la fin du PATH

              1) Quand tu fait ton premier programme, tu l'appelle "test", tu compile, tu lances "test", et tu ne comprends pas le résultat

              2) D'une manière générale, il est assez courrant de vouloir appeler un script dans le répertoire courrant et de ne pas savoir si il y a quelque chose qui porte le même nom dans le reste du PATH.

              3) Niveau sécurité, c'est à peine mieux : N'importe qui peut mettre 'sl', 'grpe', et autre fautes de frappes courrantes, executables, dans un répertoire partagé comme /tmp, et tu as intérêt à ne pas tapper 'sl' à la place de 'ls' quand tu est dans un de ces répertoires.

              4) De toutes façons, pour avoir une complétion efficace, il vaut toujours mieux tapper "./commande" que "commande", vu qu'en général, il suffit de faire ./c TAB.

              Bref, tout un tat de bonnes raisons de ne pas avoir de '.' dans le PATH.
              • [^] # Commentaire supprimé

                Posté par  . Évalué à 2.

                Ce commentaire a été supprimé par l’équipe de modération.

                • [^] # Re: Sortie de ZSH 4.2.0

                  Posté par  . Évalué à 1.

                  Et quand tu veut lister le home de quelqu'un d'autre, tu te retrouve avec le même problème ...
      • [^] # Re: Sortie de ZSH 4.2.0

        Posté par  . Évalué à 2.

        Ca ne serait pas une problème de configuration ? Il y a une option pour empêcher zsh de compléter le répertoire dans lequel on se trouve quand on complète des répertoires, ça ressemble beaucoup à ce qui t'arrive. Mais je ne me souviens plus du nom de l'option, man zsh :)
      • [^] # Re: Sortie de ZSH 4.2.0

        Posté par  . Évalué à 1.

        Ou sinon, pour utiliser un mécanisme indépendant de zsh :
        voir run-mailcap qui propose les lanceurs see, edit, print et compose qui utilisent le système mailcap.
        Pour info, le window-manager Ion l'utilise par défaut.
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  (site web personnel) . Évalué à 3.

      avec autoload -U zsh-mime-setup
      puis la commande zsh-mime-setup, il lit les fichier mailcap et mime.types pour faire ces associations
  • # Re: Sortie de ZSH 4.2.0

    Posté par  . Évalué à 0.

    « Complétion » c'est vraiment disgracieux. Suis-je seul de cet avis ?

    Je me souviens d'une traduction proposée ici d'ailleurs (désolé, je ne me rappelle plus du traducteur) : « complètement », du verbe complèter.

    Voilà, voilà.
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 3.

      je trouve complétion bien plus joli, question de goût.
      • [^] # Re: Sortie de ZSH 4.2.0

        Posté par  (site web personnel) . Évalué à 1.

        « complétion» n'existe pas, c'est un barbarisme. Il faut utiliser le vrai mot qui est dans le dictionnaire depuis plus de 50 ans : complètement : action de compléter.
        • [^] # Re: Sortie de ZSH 4.2.0

          Posté par  . Évalué à 1.

          Cause toujours..
          Je préfere de loin complétion: "le complétement automatique du shell", beurk!!
          • [^] # Re: Sortie de ZSH 4.2.0

            Posté par  . Évalué à 0.

            "le complétement automatique du shell"
            "le complètement automatique du shell" :)

            Mais je suis d'accord avec toi, completion fait plus hype :)
            • [^] # Re: Sortie de ZSH 4.2.0

              Posté par  . Évalué à -1.

              ouais, en info je pense qu'il vaut mieu certain barbarisme que certaines traductions, même si elle sont vrai, après on se retrouve avec des classes untel n'a pas d'ami, ou des jetons a la place de token
        • [^] # Re: Sortie de ZSH 4.2.0

          Posté par  . Évalué à 3.

          COMPLÉTION, subst. fém.
          PHILOS. et lang. littér. : Action de compléter; Résultat de cette action, achèvement, accomplissement. Synon. Complètement

          Source : http://atilf.inalf.fr/dendien/scripts/tlfiv4/showps.exe?p=combi.htm(...)

          Donc complétion existe, et est synonyme de complètement. On va pas changer de terme sous pretexte que le mot est pas très joli.

          Trop d'intégrisme tue l'intégrisme...
          • [^] # Re: Sortie de ZSH 4.2.0

            Posté par  . Évalué à 1.

            Et le complétage dans tout ça, je pense qu'on l'oublie un peu trop souvent celui-là ;)
            • [^] # Re: Sortie de ZSH 4.2.0

              Posté par  . Évalué à 0.

              Pour mettre tout le monde d'accord on devrait employer le complétionnement voir même le complétationnement
          • [^] # Re: Sortie de ZSH 4.2.0

            Posté par  (site web personnel) . Évalué à 3.

            Allez quitte à me faire moinsser j'en remets une couche :

            d'abord vous ne trouverez pas beaucoup de dictionnaires dans lequel « complétion » existe.
            Dans le Petit Robert de 1985, il n'y est pas.
            Dans le Larousse de 2000, il y est mais n'a rien à voir avec « complètement » :
            « Ensemble des opérations qui précèdent et permettent la mise en production d'un puits de pétrole ».
            Quand on le trouve et que le sens se rapproche de « complètement », il s'agit d'un mot à connotation philosophique et n'a rien à voir avec l'informatique.

            La vérité est que les gens utilisent des mots sans avoir vérifié leur sens et en importent directement de l'anglais sans se soucier de trouver la vraie traduction. "Completion" existe EN ANGLAIS et veut dire « achèvement ».

            Il y a d'autres exemples : « fonctionnalité » qui est utilisé à la place de « fonction » ou de « caractéristique ». C'est comme si on disait « gustativité » à la place de « GOÛT » !!!

            Et le premier qui me dit que l'« autocomplétion » est une « fonctionnalité », je l'étrangle et je lui fais répéter dix mille fois que l'autocomplètement est une caractéristique.
            • [^] # Re: Sortie de ZSH 4.2.0

              Posté par  . Évalué à -1.

              Ben moi je dis que je n'ai rien contre l'argot informatique et ceux qui l'emploient.
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  (site web personnel) . Évalué à -3.

      Complétation ?

      On pourrait presque mettre "complémentation" ;-).

      Envoyer les -------------- !
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à -1.

      dans completion, il y a 2 mots : completer et la terminaison en "tion" qui se rapproche du mot action. On peut donc dire que c'est un mot composé basé sur completer et action d'ou le mot complétion.
  • # Comparons ce qui est comparable

    Posté par  (site web personnel) . Évalué à 3.

    >ZSH possède un système de complétion très évolué, qui peut se comparer au désormais célèbre bash-completion, mais en plus évolué.
    Il ne faut pas confondre les primitives de completion, et la bibliothèque de fonction les exploitant. Dans le cas de zsh, les deux sont liés, mais pas dans le cas de bash, pour lequel le projet bash completion ne s'occupe que de la bibliothèque, tandis que les développeur de bash ne s'occupent que des primitives.

    Du coté des primitives, il n'y a pas photo, zsh est largement plus évolué. Du coté de la bibliothèque, c'est plus mitigé, bash-completion ayant l'avantage d'une base d'utilisateurs et de contributeurs plus vaste, et donc d'une vitalité plus grande. Ensuite, c'est fonction par fonction qu'il faudrait comparer. Par exemple, je doute que la complétion zsh pour urpmi soit aussi rapide que celle de bash, par exemple, étant donné que j'ai bossé directement avec les développeurs pour optimiser cette complétion, et que j'en maintiens maintenant le code directement dans le CVS d'urpmi.

    D'ou une question intéressante: où est-ce le plus pertinent de maintenir de telles fonctions de complétion ? Avec le shell lui-même (comme zsh) ? Sous la forme d'un projet indépendant (comme bash-complétion) ? Directement auprès des softs eux-même (comme urpmi) ?
    • [^] # Re: Comparons ce qui est comparable

      Posté par  . Évalué à 1.

      Dans zsh un tas de projet qui ne sont pas dans le CVS de zsh propose leur fonction. Par exemple chez sourcemage on rajoute tout les fichiers necessaire a la completion des commandes de la distros en meme temps que zsh est casté.

      pour moi 1/ et 2/ c'est du parreil au même.

      3/ bin ca puxor mais en meme temps on peut pas integrer toutes les applications autrement ca va prendre 200 Mo. Sur des distros comme sourcemage on peut verifier si zsh est installer lors de l'install d'un soft et donc ajouter les fichiers nécessaire a la completion. Par contre ce n'est pas applicable a toutes les distributions.
    • [^] # Re: Comparons ce qui est comparable

      Posté par  (site web personnel) . Évalué à 2.

      Le mieux serait que les différents shells puissent lire un fichier de description des complétions possibles qui soit au même format pour tout le monde.

      Les projets pourraient alors fournir ce fichier, sans ce soucier de la multitude de shell existant.
  • # Re: Sortie de ZSH 4.2.0

    Posté par  . Évalué à 2.

    Que veut dire le "Z" dans ZSH ?
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 3.

      Z comme Zorro
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  (site web personnel) . Évalué à 3.

      Z'aime mon shell :)
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 4.

      Zoli SHell :)
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  (site web personnel) . Évalué à 2.

      Z Shell
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 3.

      Z comme y'a plus de lettre apres donc c'est le shell Zultime ! Y'a tout dedans !

      D'ailleur personne n'a vu qu'un tetris avait ete integré dans la 4.2.0. Ca tourne franchement emacs la :

      tetris Zsh was once accused of not being as complete as Emacs, because
      it lacked a Tetris game. This function was written to refute
      this vicious slander.

      This function must be used as a ZLE widget:

      autoload -U tetris
      zle -N tetris
      bindkey keys tetris

      To start a game, execute the widget by typing the keys. What-
      ever command line you were editing disappears temporarily, and
      your keymap is also temporarily replaced by the Tetris control
      keys. The previous editor state is restored when you quit the
      game (by pressing `q') or when you lose.

      If you quit in the middle of a game, the next invocation of the
      tetris widget will continue where you left off. If you lost, it
      will start a new game.
      • [^] # Re: Sortie de ZSH 4.2.0

        Posté par  . Évalué à 1.

        Mdr, j'ai la version 4.1.1 et tetris y est déjà.

        Re Mdr :

        serial@2100 /home/serial
        [0] $ tetris
        Use M-x tetris RET to play tetris.

        Ça vire vraiment Emacs, mais c'est pour notre plus grand bonheur.
    • [^] # Re: Sortie de ZSH 4.2.0

      Posté par  . Évalué à 1.

      Zorn Shell ?
  • # ksh vraiment mieux que bash?

    Posté par  . Évalué à 0.

    basé sur ksh, ce qui lui confère un langage de programmation très évolué si on le compare à bash

    j'ai un peu du mal à considérer bash moins évolué que ksh.
    • [^] # Re: ksh vraiment mieux que bash?

      Posté par  . Évalué à 1.

      Il ne faut pas avoir du mal. C'est bel et bien le cas même si le fossé se réduit petit à petit. Enfin je dis ça mais moi mon shell c'est eshell (Emacs Shell avec zsh derrière) et zsh pur.

      zeDek - les fichiers de config à rallonge ça me connait :)
    • [^] # Re: ksh vraiment mieux que bash?

      Posté par  . Évalué à 1.

      Encore faut'il savoir de quel ksh il est question, des parameter expansion
      de ksh83 reprise dans bash comme zsh aux vnames et discipline functions
      de ksh93 il y a un monde :)
  • # Re: recherche shell avec script embarqué

    Posté par  . Évalué à -3.

    bonjour,

    dans le cadre du developpement d'un serveur Web pour administrer un Linksys sous OpenWrt, nous sommes a la recherche d'outils de scripting a la php.

    php est un peut trop gourmand pour tourner (s'installer) sur nos petites machines disposant de 4Mo de memoire flash,

    j'ai trouvé un petit truc sympa : http://emulang.sourceforge.net/(...)

    en connaissez vous d'autre ?

    - ca peut-etre un shell ou une extention qu'on ajoutera a l'un des shells de busybox,
    - un cgi qui sera invoqué par le mini serveur http de busybox,
    - un mini serveur web avec des fonctions scripts embarqué. C'est actuellement sur cette solution que je travaille. Le serveur d'origine Linksys (broadcom) possede un petit langage tres limité. En meme temps que j'ai isolé les sources de l'environnement de dev linksys, j'y ai ajouté quelque fonctions (include et system) ; j'espere que la licence d'exploitation me le permet ...
  • # Re: Sortie de ZSH 4.2.0

    Posté par  . Évalué à 1.

    Pour info bash-completion se basee sur la completion Zsh. La completion Zsh etait la bien avant (sous une autre forme thought)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.