• =?UTF-8?Q?Comment_=C3=A9viter_la_saisie_de_longs_chemins_avec_=2Fbin?=

    From Olivier@21:1/5 to All on Thu Mar 2 09:50:01 2023
    Bonjour,

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de
    longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1

    J'aimerai configurer quelque part la variable M, y associer le chemin Mon/très/long/chemin/vers
    puis n'avoir qu'à saisir
    cd M/dossier1

    J'aimerai aussi bénéficier que l'expansion automatique pour éviter
    d'avoir grâce aux tabulations, à saisir entièrement les noms dossier1, dossier2 ...

    Ainsi si dans mon répertoire M, figurent les dossiers dossier1,
    dossier2 et foo, en saisissant cd M/d, le système complète en ajoutant ossier, en saisissant cd M/f le système complète en ajoutant oo car
    foo est le seul élément du répertoire M commençant par f.

    J'ai pu implémenter une partie en ajoutant la ligne ci-après dans ~/.profile: export M=/Mon/très/long/chemin/vers

    En suivant [1] (correctement ?), j'ai ajouté dans ~/.barshrc mais la complétion ne fonctionne pas.
    shopt -s cdable_vars
    if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
    fi

    Une idée ?

    [1] https://unix.stackexchange.com/questions/245113/bash-tab-completion-with-cdable-vars

    Slts

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pierre Frenkiel@21:1/5 to All on Thu Mar 2 10:30:01 2023
    bonjour Olivier,
    pour la completion, les 2 methodes suivantes marchent pour moi:
    set -o vi
    ou
    set -o emacs
    ensuite, je fais,par exemple:
    cd .alsa<TAB>
    et cela complete en
    cd .alsaplayer
    avec:
    cd .al<TAB>
    il me propose .alpine et .alsaplayer
    et je peux choisir en ajoutant une lettre (p ous)

    Cordialement
    Pierre Frenkiel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Thu Mar 2 10:20:02 2023
    Le 02/03/2023 à 09:43, Olivier a écrit :
    Bonjour,

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1

    J'aimerai configurer quelque part la variable M, y associer le chemin Mon/très/long/chemin/vers
    puis n'avoir qu'à saisir
    cd M/dossier1

    Fais toi des raccourcis sous forme de liens symboliques. Et ca marche
    aussi pour l'auto-complétion.

    Par exemple tu te fais un lien /raccourci qui pointe vers /Mon/très/long/chemin/vers tu pourra alors saisir /r <tab> d <tab>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Charles Plessy@21:1/5 to All on Thu Mar 2 10:40:02 2023
    Le Thu, Mar 02, 2023 at 09:43:29AM +0100, Olivier a écrit :

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de
    longs chemins vers lesquels je navigue souvent.

    J'ai ce genre de chose dans mon fichier bash_profile.

    hopla () { pushd "/mon/long/chemin/$1"; }
    _hopla () {
    local cur files
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    files=$(ls /mon/long/chemin/)
    COMPREPLY=( $(compgen -W "${files}" -- ${cur}) )
    }
    complete -F _hopla hopla

    J'en suis assez satisfait, sauf que la complétion avec tab n'explore pas
    les sous-répertoires...

    Amicalement,

    Charles

    --
    Charles Plessy Nagahama, Yomitan, Okinawa, Japan
    Debian Med packaging team http://www.debian.org/devel/debian-med Tooting from home https://framapiaf.org/@charles_plessy
    - You do not have my permission to use this email to train an AI -

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?S=C3=A9bastien_NOBILI?=@21:1/5 to All on Thu Mar 2 11:30:01 2023
    Bonjour,

    Le 2023-03-02 09:43, Olivier a écrit :
    Une idée ?

    J'utilise ça (dans Zsh, mais ça doit pouvoir s'adapter à Bash) : https://github.com/kurkale6ka/zsh/

    Tu ne vois plus la navigation dans les dossiers de la même façon :)

    Chaque dossier que tu visites est enregistré dans une base SQLite.
    Chaque fois que tu visites un dossier son poids augmente.
    La recherche floue (par FZF) te permet de trouver un dossier en tapant
    quelques caractères.

    Sébastien

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to Olivier on Thu Mar 2 12:10:01 2023
    This is a multi-part message in MIME format.
    On 3/2/23 09:43, Olivier wrote:
    Bonjour,

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1

    J'aimerai configurer quelque part la variable M, y associer le chemin Mon/très/long/chemin/vers
    puis n'avoir qu'à saisir
    cd M/dossier1



    Il me semble que *zsh* (voir https://zsh.org/ ....) ou peut-être *fish*
    (voir https://fishshell.com/ ...) est mieux que bash en utilisant l'autocomplétion par la touche TAB

    https://thevaluable.dev/zsh-completion-guide-examples/

    Et si le dossier1 est unique, on peut fairecd /**/dossier1


    Enfin, il y a la variable d'environment /*CDPATH*/ connu par *zsh*


    *https://koenwoortman.com/zsh-cdpath/*
    <https://koenwoortman.com/zsh-cdpath/>


    *Pour toutes ces raisons, mon shell interactif favori est /bin/zsh.*


    Sous Debian, installer les paquets zsh zsh-dev zsh-syntax-highlighting
    zsh-doc et peut-être fizsh


    Il faut bien évidemment disposer de deux heures de son temps pour
    apprendre et configurer zsh pour vos besoins...


    --
    Basile Starynkevitch<basile@starynkevitch.net>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ & refpersys.org

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 3/2/23 09:43, Olivier wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAPeT9jjD4vg_GTEVvJxCons2v7DXtCVpqRKSess0LoCv2n6_tg@mail.gmail.com">
    <pre class="moz-quote-pre" wrap="">Bonjour,

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de
    longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1

    J'aimerai configurer quelque part la variable M, y associer le chemin Mon/très/long/chemin/vers
    puis n'avoir qu'à saisir
    cd M/dossier1
    </pre>
    </blockquote>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>Il me semble que <b>zsh</b> (voir <a moz-do-not-send="true"
    href="https://zsh.org/" class="moz-txt-link-freetext">https://zsh.org/</a>
    ....) ou peut-être <b>fish</b> (voir  <a moz-do-not-send="true"
    href="https://fishshell.com/" class="moz-txt-link-freetext">https://fishshell.com/</a>
    ...) est mieux que <font face="monospace">bash </font>en
    utilisant l'autocomplétion par la touche TAB</p>
    <p><a moz-do-not-send="true"
    href="https://thevaluable.dev/zsh-completion-guide-examples/"
    class="moz-txt-link-freetext">https://thevaluable.dev/zsh-completion-guide-examples/</a></p>
    <p>Et si le dossier1 est unique, on peut faire<font face="monospace">
    cd /**/dossier1</font></p>
    <p><br>
    </p>
    <p>Enfin, il y a la variable d'environment <font face="monospace"><i><b>CDPATH</b></i>
    </font>connu par <b>zsh</b></p>
    <p><br>
    </p>
    <p><a moz-do-not-send="true"
    href="https://koenwoortman.com/zsh-cdpath/"><b>https://koenwoortman.com/zsh-cdpath/</b></a></p>
    <p><br>
    </p>
    <p><b>Pour toutes ces raisons, mon shell interactif favori est <font
    face="monospace">/bin/zsh</font>.</b></p>
    <p><br>
    </p>
    <p>Sous Debian, installer les paquets <font face="monospace">zsh
    zsh-dev zsh-syntax-highlighting zsh-doc</font> et peut-être <font
    face="monospace">fizsh</font></p>
    <p><br>
    </p>
    <p>Il faut bien évidemment disposer de deux heures de son temps pour
    apprendre et configurer zsh pour vos besoins...</p>
    <p><br>
    </p>
    <pre class="moz-signature" cols="72">--
    Basile Starynkevitch <a class="moz-txt-link-rfc2396E" href="mailto:basile@starynkevitch.net">&lt;basile@starynkevitch.net&gt;</a>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ &amp; refpersys.org

    </pre>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From ajh-valmer@21:1/5 to All on Thu Mar 2 12:40:01 2023
    On 3/2/23 09:43, Olivier wrote:
    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de
    longs chemins vers lesquels je navigue souvent.
    Plutôt que cd /Mon/très/long/chemin/vers/dossier1

    Dans le fichier ".bashrc" : PATH=$PATH:$HOME/bin:/sbin:/usr/sbin:/usr/bin:/...tous les chemins désirés... Relancer :
    $ bash
    Après on fait jouer la complétion.
    Bonne journée

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Haricophile@21:1/5 to All on Thu Mar 2 12:50:01 2023
    Le Thu, 2 Mar 2023 09:43:29 +0100,
    Olivier <oza.4h07@gmail.com> a écrit :

    Bonjour,

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de longs chemins vers lesquels je navigue souvent.

    Si tu y navigue souvent, autojump est assez pratique, il mémorise les
    chemins récents.

    $ j Documents

    qui t'envoie sur ton dossier (récent) /home/Documents

    Évidemment il ne faut pas appeler tous ses dossiers pareils...

    tu peux aussi employer les * sous zsh en tout cas, sous bash je crois
    que c'est (c'était?) un peu moins performant mais fonctionne aussi. https://thevaluable.dev/zsh-expansion-guide-example/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to Olivier on Thu Mar 2 13:40:01 2023
    On 3/2/23 09:43, Olivier wrote:
    Bonjour,

    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1


    Une autre possibilité, si on va très souvent dans le même répertoire,
    c'est de definir dans son ~/.bashrc


    function md1() {
      cd /Mon/très/long/chemin/vers/dossier1
    }

    Et ensuite il faut juste taper md1



    --
    Basile Starynkevitch <basile@starynkevitch.net>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/ & refpersys.org

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jean-Michel OLTRA@21:1/5 to All on Thu Mar 2 16:10:01 2023
    Bonjour,


    Le jeudi 02 mars 2023, Basile Starynkevitch a écrit...


    Une autre possibilité, si on va très souvent dans le même répertoire, c'est
    de definir dans son ~/.bashrc


    function md1() {
      cd /Mon/très/long/chemin/vers/dossier1
    }

    ou un alias, par exemple :

    alias cdicinga2='cd /etc/icinga2/conf.d'

    --
    jm

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Vincent Lefevre@21:1/5 to Olivier on Fri Mar 3 14:00:01 2023
    Bonjour,

    On 2023-03-02 09:43:29 +0100, Olivier wrote:
    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de
    longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1

    J'aimerai configurer quelque part la variable M, y associer le chemin Mon/très/long/chemin/vers
    puis n'avoir qu'à saisir
    cd M/dossier1

    Passer à zsh et utiliser une des méthodes suivantes?

    Le "hash -d": de manière similaire à ~user comme signifiant /home/user,
    cela permet de définir des répertoires sous un nom style ~m.

    hash -d m=/Mon/très/long/chemin/vers
    cd ~m/dossier1

    (ou directement "hash -d m=/Mon/très/long/chemin/vers/dossier1" si
    tu préfères), et c'est valable avec n'importe quelle commande, pas
    seulement cd, et c'est évidemment compatible avec la complétion,
    le globbing, etc.

    C'est une solution quand on un a répertoire utilisé fréquemment.

    En interactif, il y a aussi la possibilité de taper quelque chose
    du genre

    cd /M/t/l/c/v/d

    puis [Tab]. C'est utile pour de longs chemins utilisés peu fréquemment.

    Il y a aussi la possibilité d'utiliser le globbing récursif:

    cd /Mon/**/dossier1

    suivi éventuellement de [Tab] pour vérifier l'expansion. Mais s'il
    y a beaucoup de possibilités dans la récursion, ça peut être lent.
    C'est très utile quand on ne connaît pas le chemin exact vers un
    répertoire ou fichier.

    --
    Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
    100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
    Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?=C3=89tienne?= Mollier@21:1/5 to All on Fri Mar 3 13:50:01 2023
    Bonjour Olivier,

    Basile Starynkevitch, on 2023-03-02:
    On 3/2/23 09:43, Olivier wrote:
    Sur mon PC sous Bullseye, j'utilise /bin/bash.
    J'aimerai bénéficier d'un mécanisme m'évitant au maximum la saisie de longs chemins vers lesquels je navigue souvent.

    Plutôt que
    cd /Mon/très/long/chemin/vers/dossier1

    J'aimerai configurer quelque part la variable M, y associer le chemin Mon/très/long/chemin/vers
    puis n'avoir qu'à saisir
    cd M/dossier1
    […]
    Enfin, il y a la variable d'environment /*CDPATH*/ connu par *zsh*

    https://koenwoortman.com/zsh-cdpath/

    Cette variable est également disponible en bash. Pour clarifier
    son comportement :

    $ pwd
    /home/emollier
    $ mkdir -p tmp/test/avec/un/long/chemin
    $ mkdir tmp/test/avec/un/long/chemin/dir{0..9}
    $ CDPATH=/home/emollier/tmp/test/avec/un/long/chemin
    $ cd dir<TAB>
    dir0/ dir1/ dir2/ dir3/ dir4/ dir5/ dir6/ dir7/ dir8/ dir9/
    $ cd dir4/
    /home/emollier/tmp/test/avec/un/long/chemin/dir4
    $ pwd
    /home/emollier/tmp/test/avec/un/long/chemin/dir4

    Elle est également disponible en dash (Debian Alquimst Shell).
    Bien que l'autocomplétion ne soit pas disponible dans ce shell,
    il est possible de franchir rapidement ce genre d'arborescence
    en tapant directement le nom d'un répertoire cible sous le
    CDPATH pour s'y téléporter.

    Bonne journée, :)
    --
    Étienne Mollier <emollier@emlwks999.eu>
    Fingerprint: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da
    Sent from /dev/pts/2, please excuse my verbosity.

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEj5GyJ8fW8rGUjII2eTz2fo8NEdoFAmQB7I4ACgkQeTz2fo8N Edrz5Q//Tm7BnGEFcJEGRZcGhh8MDRhMqa9VHRCkGf+5ZKzYKdUYE0ur6NSPSY6V 7iwLq+F1DmM/d02pj7uk+ZnSWMEA23+YNidRLLC/dkiY3LOeEDXtZN4KT9/BxiPj f78JBhQtXwPMP1qRk3Poxh71C1gd0MBURfZ4fU2E0Sdho4iRUk7YCRBlIMqXCzyc mFUFUeADA/QbLcJAsTp0k46ZJ6FfCRMxKUVcUpJj0ik/S3BZ9z4VgvN2nmNq37+Z 6sjPPvwxwSF03uw465pyM+MjQFznCCl1TH3rW0lSmcAG7qa+D+oLlGA8dYjlhQEO acOJJfux1MhpG7G7d2oNypZa+j2wVW0XyDz/Ry3nshWnamww+EI7FNSuZzyGykCD hpaZmJND0ptzNOZSeCYWy813yfHzGl4KZxJUvLjlzGbu5owskPT8qdBUWpJNpN2l plWTObgdjE0+7cFRg5tQFlWRW2HoEABJATESncFh7i/VFMvjLoMW2K1IV+Q3xz1z yb0RI9uyk4GWZDPbCOwIQuII4c68xc2UW+ty036/sg5tsUghCX7ZAyIizJRMe/tL bqEbqvPZBvDLjs3/E/zKxwebWoR+UaQwI+Nh3ih4u8qhhRANrYNAyrBT78/tC+ic PiCd+vNS5g3gY7Rw96xVhqVSZkTTYqunSU8N+fdPpE0bfAbVx78=
    =cVId
    -----END PGP SIGNATURE-----

    --- Sou