Autojump : une manière plus rapide de naviguer dans le système de fichiers avec la ligne de commande

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
16
13
fév.
2009
Ligne de commande
Une des commandes les plus utilisées sous la ligne de commande est "cd". Une petite enquête rapide parmi mes collègues a révélé que de 10 à 20% des commandes tapées sont des "cd" ! Malheureusement, "cd" n'est pas très pratique pour passer d'un répertoire à l'autre, en particulier quand les deux répertoires sont éloignés dans la hiérarchie du système de fichiers.

Pour pallier ce problème, j'ai écrit un petit utilitaire baptisé autojump. Autojump maintient une base de données des répertoires dans lequel l'utilisateur passe le plus de temps. Il est alors possible d'utiliser la commande j pour "sauter" d'un répertoire à un autre :
j motif
Cette commande saute au répertoire le plus utilisé qui correspond au motif. Par exemple, "j to" peut vous emmener au répertoire /home/jeanpaul/documents/divers/torrents. En pratique, trois au quatre caractères sont suffisants pour le motif, à contraster avec la longueur des commandes cd habituelles.

Autojump est écrit en Python et en bash, et distribué sous la licence GPL v3. Il n'est utilisable que depuis bash pour le moment, mais le porter à d'autres shells ne devrait pas poser trop de problèmes.

Un paquet est disponible pour Arch Linux. Sous cette distribution, il suffit de taper :
yaourt -S autojump
pour l'installer. L'installation sous d'autres distributions demande de copier trois fichiers dans les répertoires adaptés, comme décrit dans le README. Toute proposition de paquet pour d'autres distributions sera vivement appréciée !

Aller plus loin

  • # Alternatives ?

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

    Il y a quand même d'autres alternatives disponibles de base...

    On peut utiliser les flèches haut/bas pour naviguer dans l'historique des commandes.

    Il y a aussi Ctrl+R et Ctrl+Shift+R pour faire des recherches dans l'historique des commandes. Quelques lettres à taper puis le défilement avec Ctrl+R permettent de faire gagner un temps précieux.

    De même quand il s'agit de naviguer entre deux répertoires aux noms un peu longuet, une fois qu'on est passé de l'un à l'autre, la commande cd - permet de passer au répertoire précédent, et donc d'alterner entre les deux.

    Enfin, pour les répertoires multiples où l'on passe souvent, autant se créer des alias, par exemple alias cdtorrents='cd /home/jeanpaul/documents/divers/torrents'
    • [^] # Re: Alternatives ?

      Posté par  . Évalué à 10.

      ...et bien définir la variable d'environnement CDPATH, aussi...
      • [^] # Re: Alternatives ?

        Posté par  . Évalué à 1.

        Je l'utilise, mais pour des répertoires de 4-5 caractères.

        Si on peut associer ça à de la complétion auto sous bash, ça serait encore mieux, mais je ne connais pas.
      • [^] # Re: Alternatives ?

        Posté par  . Évalué à 1.

        variable d'environnement CDPATH

        Euh... modulo les effets pervers de cette variable sur des scripts shell et/ou des Makefiles un peu tortueux...
    • [^] # Re: Alternatives ?

      Posté par  . Évalué à 10.

      en plus de pushd et popd (que je cite car ils existent, mais je ne les utilise pas tant que ça)
    • [^] # Re: Alternatives ?

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

      Je ne dirais pas que ce sont des alternatives mais plutôt des compléments. J'utilise toutes les commandes que tu cites, et autojump m'est quand même utile.

      Quand à créer des alias manuellement, pourquoi les créer manuellement quand un programme peut le faire pour toi, de manière transparente?
    • [^] # Re: Alternatives ?

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

      à cela on ajoute les alias et hop on s'en sort bien sans rien installer sur son système

      T'as le bonjour de JavaScript !

  • # Manque

    Posté par  . Évalué à 4.

    Il manque le README ainsi que la page de manuel dans les archives.

    Sinon, merci pour ce programme, ça fera un bon complément à la commande cd -.
    • [^] # Re: Manque

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

      Quelles archives? Je viens de faire le test en téléchargeant de github, et pour moi il y a tout...
      • [^] # Re: Manque

        Posté par  . Évalué à 2.

        Lorsque je clique sur http://github.com/joelthelion/autojump/downloads puis sur le bouton "download", et qu'ensuite je choisis tar ou zip, je meretrouve avec une archive contenant uniquement les fichiers autojump et autojump.py.
        • [^] # Re: Manque

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

          J'ai enfin réussi à reproduire ton problème, il ne se manifeste que quand je ne suis pas logué. Sans doute un bug de github?

          En attendant, j'ai rajouté une archive complète de la dernière version dans les download. Sinon il est bien entendu possible d'utiliser git pour récupérer la dernière version:

          git clone git://github.com/joelthelion/autojump.git
          • [^] # Re: Manque

            Posté par  . Évalué à 2.

            Idem. Je n'ai que deux fichiers avec git !
            • [^] # Re: Manque

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

              Est-ce que tu as au moins pu télécharger l'archive que j'ai mis dans download?
              • [^] # Re: Manque

                Posté par  . Évalué à 3.

                Oui. Cette fois c'est complet !
                Danke schön.
  • # Tu t'es inspiré de la barre d'adresse dans un navigateur ?

    Posté par  . Évalué à 4.

    ... ou dans un programme graphique ?


    Le principe ressemble étrangement en tout cas. Comme quoi ... les deux mondes ne sont pas si éloignés.
  • # Et bientôt un programme pour éditer du texte ?

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

    mode vendredi=on

    y a des gens ils sont vraiment pas bien dans leur tête, c'est quoi l'intêrêt de faire un programme exprès pour ca ? c'est une blague pour le vendredi 13 ?

    Plus sérieusement pourquoi ne pas plutôt utiliser un vrai shell, et surtout, lire sa doc. Ce qui permet de découvrir des choses intéressantes, comme les répertoires nommés (hash -d toto=/usr/local ; cd ~toto), les raccourcis du genre cd /u/l/s pour aller dans /usr/local/share par exemple.

    Et surtout, surtout, l'autostackage des répertoires :

    setopt auto_pushd
    setopt pushdminus

    15:49 (asyd~ps7529) /export/home/asyd
    % cd /tmp
    % cd /var/opt
    15:50 (asyd~ps7529) /var/opt
    % cd /opt/VirtualBox
    15:50 (asyd~ps7529) /opt/VirtualBox
    % cd /lib/svc/method
    15:50 (asyd~ps7529) /lib/svc/method
    % cd -
    directory stack
    1 -- /opt/VirtualBox
    2 -- /var/opt
    3 -- /tmp
    4 -- /export/home/asyd

    et la peut être que les gens arrêteront d'écrire des conneries..
    • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

      J'ai peut-être rien compris, mais je ne vois pas dans la liste des choses que tu énonces le truc qui remplace autojump?
    • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

      Le commentaire de Bruno manque un peu de tact, mais il a clairement raison sur le fond : à quoi bon réinventer la roue ?

      La réponse est normalement « pour faire encore mieux ! » mais dans ce cas précis il y a suffisamment de Shells évolués qui ont déjà nativement des commandes puissantes.

      Le meilleur remède à la duplication de code est la lecture de la documentation. Si cela ne suffit pas, G..gle est notre ami à tous :)
      • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

        Le commentaire de Bruno manque un peu de tact, mais il a clairement raison sur le fond : à quoi bon réinventer la roue ?

        La réponse est normalement « pour faire encore mieux ! » mais dans ce cas précis il y a suffisamment de Shells évolués qui ont déjà nativement des commandes puissantes.


        Je repose la question: où est la réinvention de roue? Est-ce que zsh (ou autres) permet déjà nativement de faire la même chose?

        Effectivement l'autostack et autres c'est bien, mais ce n'est pas la même chose et je ne vois pas ce qui empêche d'avoir et d'utiliser les deux.
        • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

          Les répertoires nommés (cd ~t<tab), et dans le cas de l'exemple (pour /home/jeanpaul/documents/divers/torrents) faire un cd ~/d/d/t c'est quand même pas bien plus long que faire j torrents, et surtout ca demande pas une VM python et une db...
          • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

            Sauf qu'autojump apprend tout seul les répertoires que tu utilises beaucoup, donc pas besoin de les nommer au préalable. Donc ce n'est pas la même chose.

            Après, c'est à toi de voir si c'est utile pour toi ou non.
            • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

              et surtout ca demande pas une VM python et une db...

              A propos de l'implémentation actuelle: ce n'est qu'un prototype! Il est sans doute tout à fait possible d'implanter la même idée dans le shell directement.
              • [^] # Re: Et bientôt un programme pour éditer du texte ?

                Posté par  . Évalué à 3.

                super ton programme, je pense que je vais l'utiliser souvent ! Merci beaucoup.

                Une remarque :

                jstat existe déjà sur mon système, c'est "Java Virtual Machine Statistics Monitoring Tool". Ta commande remplace celle-ci, ce qui n'est pas très élégant (même si je n'utilise pas personnellement jstat de java)

                Pour le reste, manque plus que l'autocomplétion, et cela sera parfait.

                Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

                • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

                  jstat existe déjà sur mon système, c'est "Java Virtual Machine Statistics Monitoring Tool". Ta commande remplace celle-ci, ce qui n'est pas très élégant (même si je n'utilise pas personnellement jstat de java)

                  C'est corrigé.

                  Pour le reste, manque plus que l'autocomplétion, et cela sera parfait.
                  J'y réfléchis :) Cela dit, si quelqu'un a une super idée pour l'implémenter, je suis preneur!

                  et merci pour les encouragements, ça fait toujours plaisir :)
                  • [^] # Re: Et bientôt un programme pour éditer du texte ?

                    Posté par  . Évalué à 3.

                    J'y réfléchis :) Cela dit, si quelqu'un a une super idée pour l'implémenter, je suis preneur!

                    A titre personnel, je pense qu'il serait intéressant pour l'autocomplétion d'avoir les 10 (le nombre est arbitraire) répertoires les plus populaires correspondant au pattern. De la sorte, si je vois que c'est bien le premier de la liste dans lequel je veux aller, je peux valider, sinon je rajoute quelques lettres.


                    Étienne
              • [^] # Re: Et bientôt un programme pour éditer du texte ?

                Posté par  . Évalué à 1.

                Si tu pouvais faire une version 100% ksh pour les Unix AIX, HPUX et Solaris et qui puisse être installé par un compte utilisateur 'normal' ca m'arrangerait pas mal.
            • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

              Les répertoires que j'utilise souvent je les connais, je sais où ils sont, et ils sont toujours dans ma stack d'autopushd. Après, oui, on pourrait dire que c'est nous avons des utilisations différentes du shell, etc,

              La même chose en pure shell j'aurais du compris un peu plus facilement...
      • [^] # Re: Et bientôt un programme pour éditer du texte ?

        Posté par  . Évalué à 10.

        Vous êtes vraiment des rabats joies

        Le gars s'amuse avec un prog qui lui manquait.

        C'est tout
    • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

      y a des gens ils sont vraiment pas bien dans leur tête
      peut être que les gens arrêteront d'écrire des conneries

      Tu commence par souffler un bon coup e relire ce que tu viens d'écrire. Ensuite tu réfléchit un peu au fait que les plus belles conneries c'est toi qui viens de les écrire.
      Tu n'as pas besoin d'insulter les gens et d'être aussi agressif pour faire passer ton message, bien au contraire.

      Ensuite comme dit au dessus, tout ce dont tu parle ne fait pas ce que fait le petit outils proposer dans la dépêche qui lui va apprendre tout seul les répertoire.
      Donc pas besoin de refaire tout tes alias à chaque fois.

      Ensuite ce programme ça ressemble plus à un proto pour l'instant, ça va dire que ça permet de tester des idées. Si le truc marche bien, que du monde l'utilise, et que les utilisateurs sont contents, qu'il évolue bien, l'idée sera peut-être intégrée directement dans des shells.

      Dans tous les cas, c'est une approche différente du problème et qui mérite au moins d'être tester. Tu part du principe que ce qui éxiste est LA bonne solution, et que donc quelque chose de similaire est forcément redondant. Mais ici on a une nouvelle approche qui est peut-être bien mieux que l'existant, et qui donc finira peut-être par le remplacer.
      Heureusement que tout le monde n'a pas la même mentalité que toi.
      • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

        C'est ça le logiciel libre ! Tout peut être essayé. Il n'y a pas besoin d'attendre qu'une hiérarchie peu compétente décide de faire une étude de marché... On essaye ! Après, c'est Darwin qui décide. C'est pour cela que le logiciel libre de développe beaucoup mieux que le logiciel "privateur".
    • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

      C'est vrai que tu es un peu violent mais c'est tellement vrai :)
      • [^] # Re: Et bientôt un programme pour éditer du texte ?

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

        Va falloir que tu m'explique en quoi ce qu'il dit est tellement vrai.

        Lequel des programmes qu'il cite apprend tout seul les répertoire que tu utilise le plus souvent ?

        En quoi dire des conneries en insultant les gens est une bonne chose. Vue le nombre de personne ici qui ont l'air de trouver le programme intéressant faudrais peut-être penser à vous poser quelques question.

        Et détail en passant, ne pas oublier que le libre c'est aussi la liberté de coder et de recoder. Pourquoi on vous vois pas insulter les devellopeur des distributions qui font toutes à peu près la même chose, ceux de tous les wm qui font tous à peu près la même chose, ceux des lecteur de musique et video qui font à peu près la même chose ?
        Pourquoi on vous voit pas insulter les dévelopeur de linux qui ne font au final que redéveloper un unix de plus qui fait à peu près la même chose que les autres ?
  • # Tant pis pour les décourageurs...

    Posté par  . Évalué à 10.

    ...Moi je la trouve très bien son idée. C'est en faisant des trucs qui n'existent pas (de la même manière) et dont on se trouve le besoin qu'on fait le mieux progresser les logiciels libres.

    Et je ne vois pas l'intérêt de venir lui casser son moral avec des remarques à 2 balles du genre "mais ça existe déjà, yaka faire cdscramble [blah, foo, bar]; exit 0; print pwd {!} && -baka # aaaaaargh = ? et hop, tout simple, yaka lire la doc". Il a fait son logiciel qui convient à ses besoins, il veut le partager avec ceux qui ont le même besoin parce qu'il trouve que ça simplifie la vie, eh bien c'est très bien ! Les logiciels libres c'est fait pour être partagé, et y'a pas marqué "AVIP only" (AVIP = Already Very Interested People), si on est forcé d'apprendre tous les manuels par coeur pour s'en servir il ne va pas y avoir grand monde pour les utiliser. Donc c'est bien qu'on ait des gens qui pensent une fois de temps en temps à faire des petits binious bien pratiques pour échapper à de fastidieux paramétrages réservés aux experts.
    • [^] # Re: Tant pis pour les décourageurs...

      Posté par  . Évalué à -3.

      si on est forcé d'apprendre tous les manuels par coeur pour s'en servir il ne va pas y avoir grand monde pour les utiliser.

      C'est vrai qu'on devrait pouvoir aller mettre les mains dans un zOS en production sans avoir appris quoi que ce soit dessus. C'est la meilleure méthode.
    • [^] # Re: Tant pis pour les décourageurs...

      Posté par  . Évalué à 2.

      Très juste.

      Mais à qui s'adresse autojump?
      Aux geeks? ils savent utiliser les raccourcis "Ctrl+R", la tab completion et les alias afin de gagner du temps?
      Au "grand public"? Déjà que la ligne de commande lui fait peur, le "cd" lui fait encore plus peur, alors apprendre à utiliser "autojump" je n'en parle pas..

      L'idée est réellement intéressante, et ça vaut le coup d'essayer. Mais j'ai du mal à voir le "profil" de l'utilisateur d'autojump.

      THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

      • [^] # Re: Tant pis pour les décourageurs...

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

        Aux geeks? ils savent utiliser les raccourcis "Ctrl+R", la tab completion et les alias afin de gagner du temps?

        Je pense effectivement aux geeks, disons aux utilisateurs déjà relativement avancés de la ligne de commande. Au départ, j'ai écrit autojump pour moi, et comme j'ai trouvé que c'était vraiment utile, j'ai décidé de le publier. Je pense que c'est complémentaire des Ctrl+R, Tab et compagnie, et non en opposition. Par rapport aux alias, tu as l'avantage (ou l'inconvénient, c'est selon!) qu'autojump va les générer automatiquement pour toi. C'est donc moins intrusif, au prix d'une erreur de temps en temps.
        • [^] # Re: Tant pis pour les décourageurs...

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

          En ce qui me concerne, autojump rentre tout à fait bien dans la manière dont j'utilise le shell (et j'utilise déjà la recherche dans l'historique de bash), donc je suis preneur.

          Pour éviter les erreurs dont tu parles, je pense qu'une simple autocomplétion suffirait à régler le problème : quand on est pas sur du motif, un coup de [TAB] et on voit tout de suite si c'est bon.

          De même, j'imaginerais assez bien qu'un double [TAB] permette de rechercher dans l'ensemble des répertoires (en utilisant la base de locate ça devrait aller vite)...
          • [^] # Re: Tant pis pour les décourageurs...

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


            Pour éviter les erreurs dont tu parles, je pense qu'une simple autocomplétion suffirait à régler le problème : quand on est pas sur du motif, un coup de [TAB] et on voit tout de suite si c'est bon.
            De même, j'imaginerais assez bien qu'un double [TAB] permette de rechercher dans l'ensemble des répertoires (en utilisant la base de locate ça devrait aller vite)...


            Effectivement, ça fait un moment que j'y pense, mais je ne vois pas bien comment l'implémenter en pratique. Tu aurais des idées?
          • [^] # Re: Tant pis pour les décourageurs...

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

            > la manière dont j'utilise le shell

            Mal ?

            Désolé, c'était trop tentant. :)


            Allez, deux/trois petits rappels qui payent pas de mine:
            !! : la dernière commande
            !$ : le dernier paramètre de la commande précédente
            !f : la dernière commande de l'historique qui commence par f

            Et sinon, je propose (comme d'autres) à chacun de lire un peu les pages info de son shell pour découvrir des trucs géniaux (ou alors d'installer zsh si y a justement pas de trucs géniaux).
            • [^] # Re: Tant pis pour les décourageurs...

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

              Je ne vois pas le rapport. Par exemple quand tu ouvres un nouveau shell après quelques temps, tu ne te souviens pas forcément de ton historique immédiat. L'équivalent dans un shell consisterait soit à faire de la recherche incrémentale, mais l'historique est limité et ça demande à taper plus, soit à mettre des liens symboliques à la main, mais c'est chiant à maintenir.

              Avec autojump, tu as un raccourcis rapide à taper et qui apprend tout seul, c'est original, c'est utile, c'est bien.

              Et puis d'abord, d'où viens cette propension idiote à vouloir expliquer aux gens comment se passer d'une chose dont ils ont besoin ? Une enfance malheureuse ? Un manque de reconnaissance ? Un déficit en calcium ?
      • [^] # Re: Tant pis pour les décourageurs...

        Posté par  . Évalué à 5.

        Il n'est pas interdit de faire mieux et de gagner du temps d'une autre manière.

        On voit ça souvent : une innovation technique apparait, ceux qui n'en ont pas besoin, ou qui le pensent disent
        "ouah ça sert à rien, on peut déja faire un truc à peu prêt équivalent avec l'existant avec un peu d'organisation et d'habitude, ..."

        Ce genre de commentaire "à chaud" est quasi systématique. Tu reviens quelques années après, et c'est là que tu verras si ils avaient raison ou pas. Soit ils l'utilisent eux aussi, soient ils avaient raison, soit ils sont devenus des dinos qui utilisent un truc que plus personne à part eux utilisent.
        • [^] # Re: Tant pis pour les décourageurs...

          Posté par  . Évalué à 1.

          Ce genre de commentaire "à chaud" est quasi systématique.
          enfin en même temps, pour 1 innovation, il y a 50 recopie de ce qu'on peut effectivement déjà faire avec l'existant sans travail supplémentaire.
          Donc à la fin, pour certains, ça devient une habitude de répondre ça ;)
    • [^] # Re: Tant pis pour les décourageurs...

      Posté par  . Évalué à 1.

      Moi je trouve aussi l'idée sympa !
      Apres, c'est vrai qu'une autre implémentation serait plus sympa que le python :)
      Faut voir la masse de travail :D
    • [^] # Re: Tant pis pour les décourageurs...

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

      Au contraire, je vois tout à fait l'intérêt de venir lui dire "mais ça existe déjà". Cela permet à tous de découvrir de nouvelles choses même si elles diffèrent légèrement de l'outil présenté.

      A mort le politiquement correct ! Si je dis une connerie n'hésitez pas à me le dire ! Si je veux faire un truc d'une façon inappropriée, insultez-moi ! Je préfère une réaction exagérée à un mutisme soit-disant bienveillant.

      L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

      • [^] # Re: Tant pis pour les décourageurs...

        Posté par  . Évalué à 2.

        Mouaif, ici t'as pas beaucoup plus de risques que de provoquer des discussions tellement longues qu'elles finissent par sortir de l'écran, mais avec ce genre de réaction je suis sûr qu'on a déja provoqué des guerres.


        S'adapter à l'interlocuteur au moins un peu, quoi.
      • [^] # Re: Tant pis pour les décourageurs...

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

        Tout à fait, et ça à deux autres avantage :
        - ça me permet de me défouler en remettant à leur place les grincheux (pour rester poli) ;
        - ça pousse ce qui aiment bien l'idée à le dire, et donc ça motive le développeur...

        Au niveau des suggestion, un truc pas serait que la recherche ce fasse à la fois dans les répertoires les plus visités et dans les dernier répertoires visités.

        Petit exemple :
        Je sais que je suis aller il y a pas longtemps dans le répertoire /usr/local/share/foobar/plugins/lib/bipbip/config (bref un truc chiant à taper) un simple "j bipbip" et j'y suis de nouveaux même si je n'y suis allé qu'une seule fois.
        J'ai souvent en tête ce genre de truc, et je perd du temps avec une recherche dans l'historique vu qu'il ne conserve que les commandes et que la première fois que j'y suis allé je partait peut-re déjà du repertoire /usr/local/share/foobar/autrechose/.

        Et l'autostack des répertoires est pas terrible dans ce cas, si j'ai parcouru 50 rep depuis. Soit celui la est sortit de la liste, soit je me cogne la recherche à la main, et ça prend des plombe, soit j'y vais à coup de grep et c'est plus simple de le retrouver à coup de complétion.
  • # Comparaison par rapport à cdargs ...

    Posté par  . Évalué à 6.

    Je trouve ce logiciel très intéressant car j'ai eu les mêmes besoins. Au boulot, j'ai besoin de me déplacer rapidement dans une centaine (voir plus) de répertoires différents (c'est une arborescence contenant la description d'un processeur 32bit, avec tous les programmes de test, etc...)
    Pour ca, j'utilise cdargs (http://www.skamphausen.de/cgi-bin/ska/CDargs)

    Quand je suis dans un repertoire que je sais être utilisé souvent , je crée un alias avec

    "ca mon_alias"

    Ca ajoute "alias" à un fichier (texte) caché avec le répertoire courant

    Ensuite, je me déplace de répertoires en répertoires avec "cv alias" (avec autocompletion..)

    Jusque là, ce n'est pas trop différent d'autojump (mis à part l'aspect automatique de autojump je pense). Le gros plus de cdargs, c'est que ca marche aussi dans Emacs !
    Un raccourci + l'alias, et hop emacs ouvre le répertoire concerné ! Super efficace.

    Comme je bosse sur plusieurs projets différents à la fois, mais que chaque projet à la même structure , je n'ai même plus besoin de créer tous les alias, un coup de chercher/remplacer, et hop, j'ai les alias pour le nouveau projet (j'ai du modifier un peu cdargs pour utiliser une variable d'environnement propre à chaque projet mais c'est du shell donc super simple)

    Si quelqu'un a mieux, je prends !
  • # Un autre problème

    Posté par  . Évalué à 3.

    J'aime bien cet utilitaire, mais il y a à mon avis un problème bien plus chiant, c'est lorsque on à besoin de travailler sur deux (ou plus) répertoires en même temps.
    Je sais que je me balade souvent entre par exemple /mnt/ma_clef_usb/documents/asso/machin/bidule
    et ~/documents/asso/machin/bidule, mais si jamais j'ai besoin de copier un fichier de l'un à l'autre, alors je doit me retaper le chemin entier. Et dès qu'on passe à trois répertoires, c'est l'enfer.

    j'me souviens du bon vieux ms-dos :
    c:
    cd machin\bidule
    a:
    cd bidule
    copy c:fichier .
    • [^] # Re: Un autre problème

      Posté par  . Évalué à 2.

      Oui enfin l'embetant sous DOS c'est que si tu tapes "cd D:\toto" et que tu es sous C: et bien tu n'as pas bouger en fait, ce qui est pénible..

      Sinon je pensais qu'avec le cdargs posté par Ronan BARZIC, si on étendait le concept des ~user a ces alias, tu pourrais faire cp ~alias/fichier .
      et pour accéder au dernier répertoire comme "cd -" fait: cp ~-/fichier .

      YAPQC (Y a plus qu'a coder) ;-) ;-)
      • [^] # Re: Un autre problème

        Posté par  . Évalué à 1.

        et/ou alors YAPQL (… lire ) ;-) ;-) :

        Extrait de la man bash :

        If the tilde-prefix is a `~+', the value of the shell variable PWD replaces the tilde-prefix. If the tilde-prefix is a `~-', the value of the shell variable OLDPWD, if it is set, is substituted. If the characters following the tilde in the tilde-prefix consist of a number N, optionally prefixed by a `+' or a `-', the tilde-prefix is replaced with the corresponding element from the directory stack, as it would be displayed by the dirs builtin invoked with the tilde-prefix as an argument. If the characters following the tilde in the tilde-prefix consist of a number without a leading `+' or `-', `+' is assumed.

        Merci de me l'avoir fait découvrir dans la (très chargée) manpage de bash !
        • [^] # Re: Un autre problème

          Posté par  . Évalué à 2.

          Merci pour l'info, je ne savais pas que ~- existait deja.

          Par contre "~<un numero du directory stack>" est une fonctionnalité différente que celle que je proposait "~<un alias>" car le premier est dynamique et les index dans la pile peuvent changer donc ce n'est surtout valable que pour les repertoire recemment utilisé, tandis que le deuxième serait plus 'stable' dans le temps..
    • [^] # Re: Un autre problème

      Posté par  . Évalué à 2.

      Personne n'a entendu parlé des onglets ici ??
      Avec Konsole, j'ouvre à peu près autant d'onglets que de répertoires dans lesquels je dois travailler et je navigue facilement de l'un à l'autre avec Shift-Droite/Gauche.

      En outre, voici une petite astuce aussi que je m'empresse de partager : la fonction "menu-complete" de bash. J'ai mappé cette fonction à la touche ² (qui ne sert quasiment à rien dans une ligne de commande) :
      $ cat .bashrc
      ...
      bind "²: menu-complete"
      ...

      Ça permet de compléter à la vi : le bash circule parmi les possibilités (au lieu de bloquer sur la première ambiguité, comme avec <TAB>). Bref, la combinaison de <TAB> et de ² (qui sont juste à coté de surcroit) permet de naviguer dans les chemins très facilement sans quasiment rien taper.
      Je vous laisse essayer ;)
      • [^] # Re: Un autre problème

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

        Génial le menu-complete! Je vais voir si je peux pas le coupler avec autojump :)
        • [^] # Re: Un autre problème

          Posté par  . Évalué à 2.

          comment faites-vous pour l'utiliser avec le ² ? Chez moi dans le shell cela m'ajoute des � à la fin de la première complétion ?

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

          • [^] # Re: Un autre problème

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

            idem chez moi, mais j'ai contourné en bindant = à la place. Un problème d'utf-8?
            • [^] # Re: Un autre problème

              Posté par  . Évalué à 2.

              oui sans doute. Bon, c'est vrai que le = n'est pas forcément beaucoup utilisé dans bash (dans l'utilisation que je fais du moins). L'avantage du ² c'est que c'est plus proche de la tabulation...
              Faudrait peut-être changer le ² avec xmodmap et assigner l'auto complétion dessus.

              Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Un autre problème

        Posté par  . Évalué à 2.

        En quoi ça évite les cp /usr/share/doc/repertoirearalongue/examples/truc .
        ou les ~/programme/de/test --entree ~/le/repertoire/avec/plein/de/truc > resultat
        ?
    • [^] # Re: Un autre problème

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

      suis-je le seul qui utilise encore mc (midnight commander) pour ça?

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

  • # Principe du moindre effort...

    Posté par  . Évalué à 3.

    $ apt-cache search "change directories"
    libfile-chdir-perl - A more sensible way to change directories
    wcd - saves time typing when you want to change directories

    et aussi kcd qui me semble le plus proche de celui que tu as écris (kcd.sourceforge.net)

    0. Principe du moindre effort appliqué à l'informatique
    *1. Chercher si quelqu'un ne l'a pas déjà fait avant de le faire...*
    2. Si oui, modifier le logiciel en appliquant 0.
    3. Si non, créer le logiciel en appliquant 0.

    Remarque: le "principe" implique l'existence de logiciels à code ouvert et partageable pour minimiser 2. et 3. ;-)


    • [^] # Re: Principe du moindre effort...

      Posté par  . Évalué à 2.

      4. Balancer le résultat de ses recherches et son besoin sur dlfp pour faire connaître des trucs méconnus et éviter les redondances inutiles ?
      • [^] # Re: Principe du moindre effort...

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

        5. Ce faire insulter copieusement par des grincheux rétrograde qui ne veulent pas évoluer et qui ne tolère pas qu'on éssaye de nouvelles idées ou approche d'un problème.
        • [^] # Re: Principe du moindre effort...

          Posté par  . Évalué à 4.

          6. Ignorez les trucs les plus idiots, et voir si potentiellement tu peux pas en tirer quelque chose. Ne pas le prendre pour soit, quoi.


          T'auras toujours des gens qui seront tout content d'avoir "résolu" le problème à leur sauc e au prix d'un potentiellement long et couteux apprentissage et qui seront réticent aux autres solutions, histoire de fierté quelque part. Ou d'humanité, tu t'es attaché quoi.
          • [^] # Re: Principe du moindre effort...

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

            6. Ignorez les trucs les plus idiots, et voir si potentiellement tu peux pas en tirer quelque chose. Ne pas le prendre pour soit, quoi.

            Sauf que c'est gonflant de voir quelqu'un ce faire insulter sans raisons et ceux qui le font méritent d'être remis à leur place. Bref faire comprendre que ce n'est pas la bonne attitude pour éviter que cela ce reproduise.

            T'auras toujours des gens qui seront tout content d'avoir "résolu" le problème à leur sauc e au prix d'un potentiellement long et couteux apprentissage et qui seront réticent aux autres solutions, histoire de fierté quelque part. Ou d'humanité, tu t'es attaché quoi.

            Sauf qu'il n'y a qu'une personne qui ce fait potentiellement chier, celui qui code et la majorité du temps il le fait par plaisir.
            Ce qui utilisent au contraire y gagnent du temps car il n'ont pas à le faire eux même, et en plus ont leur donne l'info pré-machée sur linuxfr.

            Dans le cas présent les autres solution ne résolvent pas le problème de la même manière, et pour certains cette nouvelle approche est bien plus intéressante. Pourquoi s'en priver ?
    • [^] # Re: Principe du moindre effort...

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

      Tu sais autojump fait en tout et pour tout une page de code. C'est ça aussi, le moindre effort en informatique.

      C'était beaucoup plus simple de repartir de zéro que de se plonger dans un autre projet. Je rappelle que c'est surtout un prototype (même si je m'en sers, puisque du coup il fait exactement ce que je veux).
      • [^] # Re: Principe du moindre effort...

        Posté par  . Évalué à 2.

        Il n'y a pas de souci avec ça, au contraire, j'apprécie toujours la naissance d'un nouveau logiciel... libre ! Je m'étais moi-même penché sur la question, et avant de commencer à coder, j'avais cherché si ça existait déjà, c'était donc l'occasion de partager quelques trouvailles... D'où mon post, qui n'était pas une critique, mais une remarque sur une façon de faire qui permet d'économiser (aussi) de l'énergie. Le hic que j'ai trouvé avec tous ces logiciels, c'est la création d'une base de données qui doit être mis à jour à chaque fois qu'on crée un répertoire, ce qui ralentit la navigation dans des répertoires que l'on crée et détruit souvent. Du coup, j'avais un peu laissé tomber ces softs...

        Si il faut utiliser une base de données, autant utiliser celle de locate et créer un script intelligent à base de cd `locate <chaine>` vu que locate est capable de chercher des expressions régulières. Bien sûr, le script doit prendre en compte les multiples "hits" de locate et permettre de naviguer entre eux.

        Il y'avait ncd qui faisait ça, Je me souviens que c'était sur DOS, mais je ne me rappelle plus si il y'avait le même problème de mise à jour des données.

        Ici: http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml

        En tout cas, ca vaudrait peut-être la peine si tu te penches sur ce problème et que tu fais une page sur ton logiciel de pointer sur les autres solutions existantes, telles que celles que j'ai mentionnées ? En tout cas, elles sont sur cette page maintenant ;-)
  • # Apparix

    Posté par  . Évalué à 3.

    Il existe aussi apparix qui est bien pratique :
    http://www.micans.org/apparix/
  • # Ça me rappelle un bon view programme pour MS-DOS

    Posté par  . Évalué à 3.

    ncd (Norton Change Directory), vous vous souvenez? Ou alors c'est que je suis vraiment... vieux :'( .

    Cet utilitaire fonctionnait de pair avec Norton Commander. Ils partagaient tous deux le même arbre et les mêmes commandes -- je crois. En tous cas c'était bien pratique. Mais, honnêtement, je ne souffre plus de cette malad^Wnostalgie depuis que je connais la touche TAB sous quelque Shell qui se respecte ;-) .
  • # Un petit tipaz inputrc

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

    Alors. juste pour la convivialité, j'utilise une petite astuce pour éviter le ^R.
    Par défaut, sur les distribs que j'utilise, fleche haut et bas permettent de remonter dans l'historique tout simplement.
    Dans .inputrc :
    # incremental search with up/down arrows
    "\e[A": history-search-backward
    "\e[B": history-search-forward

    Maintenant, si vous faites "fleche haut" sur une ligne vierge, ça remonte l'historique, mais si vous la ligne contient un truc, ça remontera seulement les éléments d'historique matchant le préfixe, à la façon de ^R.
  • # Amélioration

    Posté par  . Évalué à 1.

    Tu pourrais remplacer:
    export PROMPT_COMMAND='autojump -a "$(pwd -P)"'
    par ca:
    export PROMPT_COMMAND="autojump -a \"\$(pwd -P)\";$PROMPT_COMMAND"

    En effet il est pas forcément vide chez tout le monde :) Sinon super idée.

Suivre le flux des commentaires

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