Forum Astuces.divers [Terminal] Complétion avec GNU Bash

Posté par  .
Étiquettes : aucune
0
2
juil.
2002
Pour avoir une complétion intelligente avec le Bash (version =< 2.05a, télécharger le paquet bash-completion dispo à http://www.caliban.org/bash/

Une fois installé, normalement, lorsque vous tapez `cd [TAB]`, il vous propose plus que des répertoires. Lorsque vous lancez `ssh`, la complétion vous propose une machine qui se trouve dans votre fichier known_hosts. Vous pouvez de même essayer tapez `rpm -e kde[TAB]`, `ggv [TAB]`, `unzip [TAB]`

Vous pouvez ensuite modifier le /etc/bash_completion, ajouter des trucs dans /etc/bash_completion.d ou même vous créer un ~/.bash_completion.
  • # Re: Complétion avec GNU Bash

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

    Le plus interressant est la completion de make et de configure :
    qq soit les sources a compiler, la completion lis les fichiers de conf et propose les options disponibles...
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    En français il parait qu'on dit "le complètement".
    • [^] # Re: Complétion avec GNU Bash

      Posté par  . Évalué à 1.

      Possible, mais ça ne ressemble à rien (très subjectif, je l'admet) et la définition du dico n'éclaire pas en la matière.

      En l'absence de pistes solides...
    • [^] # Re: Complétion avec GNU Bash

      Posté par  . Évalué à 1.

      tiens pour le fun j'ai pris un dico et effectivement:

      "complétion":
      Ensemble des opérations d'achèvement d'un puits de pétrole avant sa mise en production.

      "complètement":
      Action de mettre au complet.

      "complémentation":
      ah non, ça ça n'existe pas :)


      Bref, nous devons effectivement utiliser "complètement" et non "complétion". Nul doute qu'une fois le pli pris, cela ne nous paraîtra plus bizarre du tout :)
      • [^] # Re: Complétion avec GNU Bash

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

        Quoi, l'Académie Française va faire dire la "complètement intelligente" plutot que la complétion intelligente !

        Ca va être beau !

        PiT
        • [^] # Re: Complétion avec GNU Bash

          Posté par  . Évalué à 1.

          Et pourquoi pas « complétition », pendant qu'on y est ...
        • [^] # Re: Complétion avec GNU Bash

          Posté par  . Évalué à 1.

          l'Académie Française va faire dire la "complètement intelligente"

          Non, le complètement intelligent :-)
          • [^] # Re: Complétion avec GNU Bash

            Posté par  . Évalué à 1.

            Il y a une expression dans le sud pour dire qu'on est saoul : être bash ! Ca me fait trop rire car j'entend souvent "je suis complètement bash !" ca tombe pile poil sous le sens :-)))
      • [^] # Re: Complétion avec GNU Bash

        Posté par  . Évalué à 1.

        Peut-être que complétion dans le sens informatique du terme n'est pas renseigné dans ton dico.
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    Alors, vous avez mis des trucs intéressants dans votre ~/.bash_completion ?
    • [^] # Re: Complétion avec GNU Bash

      Posté par  . Évalué à 2.

      En fait, celui fournit de base est déjà très complet...
    • [^] # Re: Complétion avec GNU Bash

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

      Oui mais pour la plupart c'est du spécifique BeOS/Zeta/Haiku...
      bash_completion est installé par défaut dans Zeta.
      Par exemple avec 'rescan' il complète les noms de drivers.
      Par contre j'ai quelques problèmes avec les espaces dans les noms de fichiers, j'espère que la dernière version corrige ça.
      Il existe aussi un code pour p4 (perforce) et svn.
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    Un problème toute fois : la complétion des répertoires ne fait pas, par exemple, "le" en "lerep/", mais "le" en "lerep "... Pas très pratique. On peut changer ça dans le "bash_completion" ?
    • [^] # Re: Complétion avec GNU Bash

      Posté par  . Évalué à 1.

      t'es sur ?
      chez moi ca marche nickel...
      • [^] # Re: Complétion avec GNU Bash

        Posté par  . Évalué à 1.

        Peut-être parce que j'ai la version 2.05.0(1)-release ( i386-slackware-linux-gnu ) selon bash --version. C'est peut-être antérieur à 2.05a ?
    • [^] # Re: Complétion avec GNU Bash

      Posté par  . Évalué à 1.

      Arf ... Même problème ...
      SI un jour quelqu'un passe avec la solution ...
      • [^] # Re: Complétion avec GNU Bash

        Posté par  . Évalué à 1.

        C'est uniquement dans le cas où il y a plusieurs répertoires ayant une même racine en commun.

        Exemple d'arborescence

        / truc
        / truc / machin
        / truc / machin-2
        / truc / bazar

        On a :
        moi@ici:/truc $ cd m[TAB]
        -> $ cd machin

        Mais aussi :
        moi@ici:/truc $ cd b[TAB]
        -> $ cd bazar/

        C'était aussi simple que ça.

        Chucky
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    Sous débian (en tout cas sur ma sarge) :
    apt-get install bash-builtins
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    C'est pas ce que fait ZSH depuis des années ?
    • [^] # Re: Complétion avec GNU Bash

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

      si si, en beaucoup mieux et beaucoup complet mais bon....
      • [^] # Re: Complétion avec GNU Bash

        Posté par  . Évalué à 1.

        Sans oublier tcsh, très bon aussi, avec une correction de ligne de commande très pratique ( genre lsz -al -> propose une correction ls -al ). Mais je crois que zsh le fait aussi... ?
        • [^] # Re: Complétion avec GNU Bash

          Posté par  . Évalué à 1.

          GNU Bash permet aussi la correction des petites erreurs de frappe. Il suffit de mettre ça dans le .bashrc:

          shopt -s cdspell
          • [^] # Re: Complétion avec GNU Bash

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

            ZSH fait la correction à la frappe comme tcsh, mais aussi la correction après la frappe :)
            du genre "tu voulais pas plutot dire toto (y|n|e)
            • [^] # Re: Complétion avec GNU Bash

              Posté par  . Évalué à 1.

              [fenril@tuxbox fenril]$ cd /mnt/windows
              zsh: Did you mean "rm -rf /mnt/windows" ? By making this, you will get 15Go of free disk space. [Y/n]

              ;-)
            • [^] # Re: Complétion avec GNU Bash

              Posté par  . Évalué à 1.

              tcsh propose aussi cela, avec 4 options: y,n,e,a (yes, no, edit, abort)

              le prompt est personalisable par:

              set prompt3 = 'Hmm... je présume que tu voulais: "%R"\n (y|n|e|a)? '
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    domage qu'il ne met pas en couleur les rép et les executables proposés
  • # Re: Complétion avec GNU Bash

    Posté par  (Mastodon) . Évalué à 1.

    Un truc que je cherche et que je n'ai pas trouvé (mais peut-être pas assez cherché), c'est un moyen de passer outre le "complètement intelligent" dans certains cas. Par exemple si j'ai un fichier sans extension, ou avec une extension bidon, et que je veux avoir son complètement, une alternative à [TAB] ?
  • # Re: Complétion avec GNU Bash

    Posté par  . Évalué à 1.

    Un tutoriel tout chaud est dispo sur http://www.minet.net/spip/article.php3?id_article=93(...) :)

Suivre le flux des commentaires

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