Journal Nouvelle version d'autojump

Posté par  (site web personnel) .
Étiquettes : aucune
12
18
déc.
2010
Je viens de publier une nouvelle version d'autojump. Pour mémoire, c'est un petit logiciel que j'ai écrit pour faciliter la navigation dans le système de fichiers en ligne de commande. C'est une commande "cd" intelligente, qui apprend en fonction de votre usage de la ligne de commande, et qui permet de sauter d'un point à l'autre du système de fichiers en ne saisissant qu'une partie du nom du répertoire où l'on veut aller.

Cette nouvelle version propose en particulier la compatibilité avec python 3.x, et un certain nombre de corrections de bugs. J'ai aussi fait un petit tutorial vidéo pour les linuxiens pressés: http://www.youtube.com/watch?v=tnNyoMGnbKg

Pour installer autojump, vous pouvez utiliser votre gestionnaires de paquets préféré, ou télécharger directement la dernière version sur le github: https://github.com/joelthelion/autojump/wiki
  • # Trop cool ce bout de code !

    Posté par  . Évalué à 6.

    J'ai découvert il y a deux mois : installé, adopté.

    Que dire de plus ? Merci :)
    • [^] # Re: Trop cool ce bout de code !

      Posté par  . Évalué à 3.

      Pareil, sauf que je peux ajouter que j'ai du mal à m'en passer : j'ai souvent tendance à essayer "j qqch" sur des systèmes où il n'est pas installé...
      Fini les alias sur la commande cd en tout cas.

      J'ai découvert ce logiciel à l'occasion d'un précédent journal, il m'a fallu quelques jours avant de l'essayer. Depuis, j'attendais un journal sur la prochaine version d'autojump pour dire un truc comme ça :
      Un grand merci à Joël pour ce programme simple et efficace, et merci à Tanguy pour le paquet Debian que j'utilise au boulot sur ma Ubuntu ;-)
      • [^] # Re: Trop cool ce bout de code !

        Posté par  . Évalué à 2.

        sauf que je peux ajouter que j'ai du mal à m'en passer : j'ai souvent tendance à essayer "j qqch" sur des systèmes où il n'est pas installé...

        Bienvenue au club mon gars :-(
  • # La vidéo

    Posté par  . Évalué à 4.

    La vidéo permet effectivement de se faire une bonne idée d'autojump. C'est pas mal du tout. Good job.
    • [^] # Re: La vidéo

      Posté par  . Évalué à 2.

      c'est excellent de bout de code. bravo.
      pas mal l'idée de la video, c'est bien fait.
      j'aime bien la ptite pause à 2min05, on imagine bien la scene (ref pub free):
      - à taaaable
      - naaan ! pas maintenant..
  • # Paquet Debian…

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

    Bon, ça me rappelle qu'il faut que je mette à jour mon paquet Debian d'autojump, moi. :-)

    Pour info donc, autojump est disponible en paquet pour Debian unstable. Il ne sera pas dans Lenny, mais ce n'est pas grave vu qu'il dépend seulement de Python : même sur une stable ou une testing, le paquet d'unstable fonctionnera sans problème. Après la sortie de Squeeze je préparerai un rétroportage (backport).
  • # Commentaire supprimé

    Posté par  . Évalué à 3.

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

  • # La base de donnée ne se remplit pas

    Posté par  . Évalué à 2.

    Bonjour,

    après quelques commandes cd, sous archlinux, la command jumpstat affiche toujours
    Total key weight: 0. Number of stored paths: 0
    J'ai bien sourcé /etc/profile dans ~/.bashrc, mais ça n'a pas changé grand chose. D'autre part, je ne vois pas de trace de autojump dans /etc/profile...

    Qu'en pensez vous ?

    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

  • # Oui, avec pacman,

    Posté par  . Évalué à 1.

    J'ai installé la version 13 du dépôt community.
    Évidemment, je pense que .bashrc est lu à chaque fois que le shell démarre, mais je peux me tromper.

    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

    • [^] # Re: Oui, avec pacman,

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

      Dans ce cas, est-ce que tu peux me dire ce que donne la commande suivant?

      echo $PROMPT_COMMAND
      • [^] # Re: Oui, avec pacman,

        Posté par  . Évalué à 2.

        laptop:~$ echo $PROMPT_COMMAND
        echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"

        Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

        • [^] # Re: Oui, avec pacman,

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

          Ben voilà, on tient le problème, d'une manière ou d'une autre les fichiers n'ont pas été sourcés, OU ALORS, tu utilises un truc qui altère sans la respecter la PROMPT_COMMAND.
          • [^] # Re: Oui, avec pacman,

            Posté par  . Évalué à 2.

            ~/.bashrc : http://pastebin.com/ds1kMa4T
            env : http://pastebin.com/SRctSFT9

            Si ça peut vous aider à comprendre. En tous cas, à la vue de PROMPT_COMMAND, j'ai abandonnée. Bon courage.

            Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

            • [^] # Re: Oui, avec pacman,

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

              Je ne vois rien là dedans qui puisse poser problème. Tu es sûr que tu n'as pas un script un peu particulier pour te faire un joli prompt?
              • [^] # Re: Oui, avec pacman,

                Posté par  . Évalué à 2.

                Franchement je ne sais pas. Peut être que c'est mon python_startup script qui met le bazar... Je ne comprends pas très bien comment marche ton script.

                Le résultat est qu'aucun appel à cd n'est enregistré...

                À propos, est-ce que l'utilisation de la commande history n'est pas suffisante pour répertorier les appels à cd ?

                Merci beaucoup pour ton aide.

                Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

                • [^] # Re: Oui, avec pacman,

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

                  En fait, ce n'est pas les appels à cd que j'enregistre, mais le chemin où tu es à chaque fois que tu tapes une commande. Ca permet d'avoir plus de données. D'autres part les appels à cd dans history sont difficiles à interpréter: comment peux tu interpréter "cd -" ou même "cd ../../toto"?

                  Si tu veux un peu chercher, c'est assez simple, il faut trouver quel script modifie la "PROMPT_COMMAND": c'est une variable d’environnement qui définit ce qui se passe à chaque fois que le prompt s'affiche, et c'est le hook que j'utilise pour alimenter la base de données d'autojump. Si cette variable est écrasée, c'est normal qu'autojump ne fonctionne pas.
                  • [^] # Re: Oui, avec pacman,

                    Posté par  . Évalué à 2.

                    Ah, mais à quoi ressemble-t-elle cette PROMPT_COMMAND ?

                    par exemple, à chaque fois que je tape quelque chose, comment elle est stockée ? Comment le répertoire dans lequel on tape la commande est-il connu ?

                    (À propos, pour ce qui est du shell, cette [http://linuxfr.org/forums/47/29483.html] entrée du forum parle un peu de portabilité shell. Ne serait-ce pas une bonne idée de réécrire autojump pour le rendre portable ? Bon ça ne va pas résoudre mon problème, mais pourquoi pas ?)

                    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

                    • [^] # Re: Oui, avec pacman,

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

                      Ah, mais à quoi ressemble-t-elle cette PROMPT_COMMAND ?

                      man bash :)

                      En fait, j'ai vu que le problème subsiste sur un autre PC. Donc ça doit être un bug d'intégration.

                      Je pense que c'est un conflit avec un autre programme... Dur à débusquer!


                      (À propos, pour ce qui est du shell, cette [http://linuxfr.org/forums/47/29483.html] entrée du forum parle un peu de portabilité shell. Ne serait-ce pas une bonne idée de réécrire autojump pour le rendre portable ? Bon ça ne va pas résoudre mon problème, mais pourquoi pas ?)


                      J'utilise des fonctionnalités qui ne sont de toutes façons pas portables, comme la complétion, donc ça n'apporterait rien de mon point de vue. D'autre part, la partie portable d'autojump est écrite en python.
                  • [^] # Re: Oui, avec pacman,

                    Posté par  . Évalué à 2.

                    En fait, j'ai vu que le problème subsiste sur un autre PC. Donc ça doit être un bug d'intégration.
                    NB, il s'agit de la version 13, donc Ça n'a peut être rien à voir avec la version actuelle.

                    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

                  • [^] # Re: Oui, avec pacman,

                    Posté par  . Évalué à 2.

                    etc]$ su -c 'grep -R PROMPT_COMMAND *
                    > '
                    Mot de passe :
                    bash.bashrc:# - Prompt defaults (PS[1-4], PROMPT_COMMAND)
                    bash.bashrc: PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
                    bash.bashrc: export PROMPT_COMMAND
                    profile.d/autojump.bash:if ! $PROMPT_COMMAND =~ autojump ; then
                    profile.d/autojump.bash: export PROMPT_COMMAND="${PROMPT_COMMAND:-:} ; $AUTOJUMP"

                    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

                    • [^] # Re: Oui, avec pacman,

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

                      C'est donc ce fichier "bash.bashrc" qui est le coupable. Est-ce que tu sais d'où il vient?
                      • [^] # Re: Oui, avec pacman,

                        Posté par  . Évalué à 2.

                        Oui, apparemment il est fourni par défaut avec le paquet bash de archlinux. Dans sa forme originale, il est comme cela. Je l'ai modifié pour qu'il n'écrase plus la variable PROMPT_COMMAND.

                        #
                        # /etc/bash.bashrc
                        #
                        # This file is the systemwide bashrc file. While most of the
                        # environment is preserved when running an interactive shell
                        # the PS[1-4] variables, aliases and functions are reset.
                        #
                        # When running a non-login shell, apply the following settings:
                        # - Prompt defaults (PS[1-4], PROMPT_COMMAND)
                        # - bash_completion if it exists
                        # - source /etc/bash.bashrc.local

                        PS1='[\u@\h \W]\$ '
                        PS2='> '
                        PS3='> '
                        PS4='+ '

                        export PS1 PS2 PS3 PS4

                        if test "$TERM" = "xterm" -o \
                        "$TERM" = "xterm-color" -o \
                        "$TERM" = "xterm-256color" -o \
                        "$TERM" = "rxvt" -o \
                        "$TERM" = "rxvt-unicode" -o \
                        "$TERM" = "xterm-xfree86" \
                        ; then

                        PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
                        export PROMPT_COMMAND
                        fi

                        [ -r /etc/bash_completion ] && . /etc/bash_completion
                        [ -r /etc/bash.bashrc.local ] && . /etc/bash.bashrc.local

                        Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

                    • [^] # Re: Oui, avec pacman,

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

                      J'avais pas vu que tu étais dans etc. J'ai un système sous arch à la maison, j'essaie de regarder ce soir.
  • # Good job

    Posté par  . Évalué à 3.

    Ca y est je m'y suis mis après plusieurs tentatives infructueuses.

    J'avoue que pour moi il n'a pas révolutionné mon shell, mais je m'en sert en complément à pushd/popd, autocd, les noms en /u/b (à la place de /usr/bin) et des dossiers que j'ai déclaré dans mon zsh pour pouvoir y accéder en ~machin.

    Bref ça complète mon arsenal et c'est vraiment cool (ça m'amuse toujours quand quelqu'un tente de comprendre ce que je fais en shell et qu'il est incapable de me suivre ^^...

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Good job

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

      Merci! Je comprends qu'avec l'arsenal que tu utilises, autojump ne révolutionne pas ton shell :) Néanmoins, je ne serais pas surpris que tu abandonnes quelques uns de ces trucs en faveur d'autojump au bout d'un moment.

      En tous cas pour perdre les gens qui te regardent, il n'y a pas mieux!! (bonus si tu utilise une partie du nom du répertoire qui n'est pas au début du nom, par ex. "od" pour "code")

Suivre le flux des commentaires

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