Forum Astuces.divers ZSH et complétion des répertoires : "cd ~+ [TAB]"

Posté par .
Tags : aucun
5
6
août
2009
J'utilise ZSH depuis un moment, et je viens seulement de découvrir cette possibilité de déplacement rapide vers les répertoires déjà visités avec "cd". En fait, cela permet d'utiliser de façon rapide et intuitive ce qui est proposé par les fonctions pushd / popd / dirs du shell.

J'ai découvert cela ici : http://www.acm.uiuc.edu/workshops/zsh/dir_stack.html (tout en bas de la page)

Je résume l'utilisation basique. On commence par visiter plusieurs répertoires pour remplir l'historique des répertoires visités :
$ cd /usr/local
$ cd /var/log
$ cd /etc/init.d

Avec ma configuration de ZSH, les répertoires que je visite avec 'cd' sont automatiquement ajoutés à la pile des répertoires (auto_pushd). Après cela, si je veux revenir à un des anciens répertoires, j'ai juste à taper :
$ cd ~+
Et à appuyer sur la touche TAB pour avoir la complétion, et cela m'affiche :
1 -- /var/log
2 -- /usr/local
3 -- /home/luzerne

Et si on tape par exemple :
$ cd ~+2
On va aller directement dans le répertoire '/usr/local'. Ça marche aussi avec 'cd ~- [TAB]' (l'ordre des répertoires est juste inversé).

En fait, j'utilisais souvent "cd -", mais je n'avais jamais essayé d'appuyer ensuite sur la touche TAB... Il s'avère qu'avec la commande 'cd', le '~' n'est pas indispensable, et que 'cd + [TAB]' et 'cd - [TAB]' fonctionnent très bien pour avoir la liste des répertoires précédemment visités.

Évidemment, cela marche avec toutes les commandes comme 'ls', 'cp' ou 'mv' (mais dans ce cas il faut penser à mettre le '~').

Voilà, j'espère que vous trouvez ça aussi génial que moi (du moins si vous ne connaissiez pas encore).

Luzerne GANHIR

PS : un autre truc sympa, c'est de définir la variable CDPATH pour avoir la complétion du contenu des répertoires listés dans cette variable, et ce quelque soit le répertoire où l'on se trouve. Un petit exemple pour la route :
export CDPATH=~:~/PROJETS
  • # Comment l'activer ?

    Posté par . Évalué à 2.

    Ça n'est pas activé chez moi par défaut alors que j'ai pourtant pas mal de commplétions qui marchent déjà.

    T'as quelle version de zsh ? Quelle option dans ton .zshrc ?
  • # Excellent

    Posté par . Évalué à 1.

    Merci pour l'astuce surtout la dernière, ca fait une sorte de favoris en ligne de commande...Très pratique ;)

Suivre le flux des commentaires

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