Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 18/01/2011, à 10:05

ehmicky

Historique et signets pour la navigation en console

Salut à tous,

Pour les accros de la console, qui ont oublié ce à quoi Nautilus faisait référence big_smile, voici un petit script qui booste la commande "cd" afin de lui permettre de :
  - naviguer rapidement dans l'historique de navigation en console.
  - utiliser simplement des signets.

Utilisation
  Historique
  - cdz (ou cd -z) revient en arrière au répertoire précédemment parcouru
  - cdy (ou cd -y) revient en avant
  - cdi (ou cd -i) permet de naviguer à l'aide d'une flèche dans cet historique.
  Signets
  - cda [DIR] (ou cd -a [DIR]) rajoute un nouveau signet pointant vers le répertoire DIR (par défaut le répertoire courant), et propose également de créer un alias vous déplaçant directement vers ce répertoire.
  - cds (ou cd -s) permet de naviguer dans les signets avec les flèches Haut et Bas et de s'y déplacer avec Entrée. De plus :
       - la touche Suppr supprime le signet sélectionné
       - la touche Flèche Droite le déplace
       - la touche Flèche Gauche le range (après l'avoir déplacé)
       - La touche Del (Backspace) (re)nomme l'alias assigné à un signet.
       - La touche q quitte la navigation sans se déplacer vers le signet sélectionné.
  - cd -h imprime l'aide.
   Navigation rapide par pattern
Enfin, en plus de l'habituel cd DIR, vous pouvez désormais également faire cd PATTERN, ce qui permet de se déplacer vers le premier signet dont le chemin correspondant à PATTERN (globbing, insensible à la casse). Par exemple, avec un signet pointant vers /home/Moi/Bureau, faire (dans n'importe quel répertoire) :

cd bur

ou :

cd b*eau

déplace vers /home/Moi/Bureau.

Installation
Téléchargez le script ici, et mettez-le où vous voulez, par exemple /chemin/vers/histerm.sh (accessible en lecture), et rajouter dans son fichier ~/.bashrc la ligne :

source /chemin/vers/histerm.sh

et ouvrir un nouveau terminal.

Exemples
  - Historique :

ehmicky@/home        $ cd Bureau
ehmicky@/home/Bureau $ cd /usr/include 
ehmicky@/usr/include $ cdz
ehmicky@/home/Bureau $ cdz
ehmicky@/home        $ cdy
ehmicky@/home/Bureau $ cdy
ehmicky@/usr/include $ 

  - Création de signets :

ehmicky@/var/log     $ cda
Quel alias souhaitez-vous donner à /var/log ?
Ne rien rentrer si pas d'alias souhaité : cdlog
ehmicky@/var/log     $ cd /home/
ehmicky@/home        $ cd /usr/include/
ehmicky@/usr/include $ cdlog
ehmicky@/var/log     $ pwd
/var/log

  - Affichage de mes signets perso via cds :

╭──────────────────────────────────────────────────────────────────────────────╮
│ /                                                               │ ...        │
│ /etc                                                            │ cde        │
│ /home/donnees                                                   │ cdd        │
│ /home/donnees/Geek                                              │ cdg        │
│ /home/donnees/Geek/Koi                                          │ cdk        │
│ /home/donnees/Geek/Koi/A_ranger                                 │ cdar       │
│ /home/donnees/Geek/Koi/C/Commandes                              │ cdcc       │
│ ──► /home/donnees/Geek/Koi/Unix/Commandes_Unix                  │ cdc        │
│ /home/donnees/Geek/Koi/Unix/Commandes_Unix/Tout                 │ cdt        │
│ /home/ether/a                                                   │ cdn        │
│ /home/donnees/Geek/Koi/C++/Commandes                            │ cdcp       │
│ /home/ether/.gvim                                               │ cdv        │
│ /home/ether/Desktop                                             │ cdb        │
│ /home/scripts/Bash                                              │ cdsc       │
│ /media                                                          │ cdm        │
│ /opt                                                            │ cdo        │
│ /root                                                           │ cdr        │
│ /usr/include                                                    │ cdh        │
╰──────────────────────────────────────────────────────────────────────────────╯

Notes
J'ai fait attention que l'on puisse toujours utiliser cd normalement : par exemple cd sans argument, cd -, les options et variables pour cd (CD_PATH, etc.).
Il y aussi une fonction de restauration des signets en cas de problèmes.
Les chemins contenant des caractères anormaux (espace, é, * ou 日sont pris en charge).
N'hésitez pas à me signaler les bugs, et les choses que vous aimeriez voir smile :

Dernière modification par ehmicky (Le 05/02/2011, à 05:56)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#2 Le 18/01/2011, à 13:54

TraGiKomiK

Re : Historique et signets pour la navigation en console

Bonjour,


Alors tres interessant et surtout tres pratique smile Merci pour ce partage big_smile


Une seule chose que je trouve pas tres agreable: le fait de devoir faire CTRL+C lors du choix du repertoire avec cdi, une validation par ENTREE serait certainement plus appropriée smile


[EDIT] Vraiment tres pratique big_smile Adopté en 1 minute d'utilisation big_smile

Dernière modification par TraGiKomiK (Le 18/01/2011, à 14:03)


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#3 Le 18/01/2011, à 22:56

nordinatueur

Re : Historique et signets pour la navigation en console

Merci beaucoup ehmicky !
J'avais fait un truc du même genre en une seule fonction, il y a un certain temps. Mais j'imagine qu'il n'était pas assez pratique à utiliser alors je me suis reposé sur l'alias « cd $OLDPWD »

Je vais me pencher sur le tien quand j'aurais le temps, pour voir s'il y a des astuces qui me seraient profitables... :-D
En tout cas au premier coup d'œil, j'aime beaucoup ta façon de coder...


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#4 Le 19/01/2011, à 02:45

ehmicky

Re : Historique et signets pour la navigation en console

@Tragicomik : mis à jour, tu peux valider avec entrée, tab ou espace smile
@nordinatueur : le problème avec $OLDPWD et cd -, c'est qu'il ne permet de revenir qu'une seule fois en arrière

Edit : mise à jour : cdh devient cdp et ne prend plus d'arguments ; cdp, cdz, cdy, cdi sont disponibles sous la forme cd -y, -z, -p et -i.

Dernière modification par ehmicky (Le 19/01/2011, à 05:26)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#5 Le 19/01/2011, à 11:20

Pizz

Re : Historique et signets pour la navigation en console

Super, merci !

Hors ligne

#6 Le 19/01/2011, à 12:49

TraGiKomiK

Re : Historique et signets pour la navigation en console

Merci pour les modifs wink Qui (a mon gout) apporte une reele agreabilité a l'utilisation big_smile


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#7 Le 19/01/2011, à 15:11

nordinatueur

Re : Historique et signets pour la navigation en console

ehmicky a écrit :

le problème avec $OLDPWD et cd -, c'est qu'il ne permet de revenir qu'une seule fois en arrière

@ehmicky : Justement, ça me permet de retrouver deux dossiers en parallèle assez facilement... (screen n'est pas pratique pour ça)
En plus j'ai fini par le combiner avec cette fonction :

cdlog=~/.CD
CD () {
ifs=$IFS
  if [[ $# -eq 0 ]]; then dos="/"; else dos="$1"; fi;
  if [[ $1 == "-l" ]]; then
      cat $cdlog;
      return 0;
  elif [[ $1 = "-e" ]]; then
      vim $cdlog;
      return 0;
  else
      nblignes=$( egrep -i "$dos[^/]*$" $cdlog | wc -l )
      if [[ $nblignes == 0 ]]; then
         echo "Rien ne correspond à « $1 » :"
         IFS=$'\n';
         select ligne in $(cat $cdlog); do
            cd $ligne && echo $ligne;
            break;
         done;
      elif [[ $nblignes == 1 ]]; then
         cd $( egrep -i "$dos[^/]*$" $cdlog ) && egrep -i "$dos[^/]*$" $cdlog  ;
      else
         IFS=$'\n';
         select ligne in $(egrep -i "$dos[^/]*$" $cdlog); do
            cd $ligne && echo $ligne;
            break;
         done;
      fi; 
  fi  
   IFS=$ifs;
}

addCD () {
   if [[ $1 == "-l" ]]; then
      cat $cdlog
      return 0
   elif [[ $# -eq 0 ]]; then
      echo $PWD >> $cdlog && echo "Ajouté : $PWD"
   elif [ -d "$1" ]; then
      echo $(cd $1; pwd) >> $cdlog && echo "Ajouté : $(cd $1; pwd)"
   elif [[ $1 ]] && [ ! -d "$1" ]; then
      echo "$1 n'est pas un répertoire";
   else
      pwd >> $cdlog && echo "Ajouté : $PWD"
   fi
   sort -u $cdlog -o $cdlog
}

Elle me permet de me déplacer dans un dossier en tapant seulement une partie de son nom... Remarque, on pourrait rajouter addCD dans la fonction CD, avec un argument spécifique. Le fichier de configuration est ici une simple suite de chemins absolus...
Je les ai faites il y a longtemps, donc il y a surement de quoi améliorer la syntaxe, voire même l'algorithme. Plus tard j'avais pensé à un système de signets, avec des mots clefs, mais la recherche prend du temps s'il y en a beaucoup...

Je crois juste que je ne suis pas très à l'aise avec les historiques... Bien que le tien est bien meilleur que ma vieille tentative ! (Je passais par une variable d'environnement initialisée dans .profile.)

En tout cas, je dis bravo ! En plus c'est compatible avec mon « CD »...
Le seul défaut, reste l'utilisation de clear. J'aime bien revoir ce qui a été imprimé dans les terminaux quand c'est possible...
Aussi y aurait-il un moyen de ne pas changer de dossier à chaque fois qu'on appuie sur une touche, mais seulement à la fin ?

Dernière modification par nordinatueur (Le 19/01/2011, à 15:18)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#8 Le 19/01/2011, à 17:19

ehmicky

Re : Historique et signets pour la navigation en console

C'est le fait que le dossier change à chaque mouvement de la flèche qui est problématique ou le fait que ça refasse un clear ?
Oui effectivement le clear m'embête aussi, en plus de ton problème, il est responsable du clignotement. Il faudrait que j'utilise ncurses/tput, mais je connais pas encore, c'est pour ça que je peux pas le faire tout de suite (à moins que quelqu'un ait une meilleure solution big_smile).
Pour les signets, en fait j'y ai pensé pendant que je faisais le script. Mais moi-même, j'utilise en fait une vingtaine d'alias du style cdb='cd /home/ehmicky/Bureau', cdm='cd /media', etc., que je crée via :

adsign()
{
    [[ ! $1 ]]\
        && echo "Usage : $FUNCNAME ALIAS" >&2\
        && return 1
    echo "alias $1='cd ${2:-$PWD}'" >> /home/ether/.bashrc
}

mais je peux intégrer une fonction de signets si tu veux ! big_smile

Dernière modification par ehmicky (Le 19/01/2011, à 17:32)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#9 Le 19/01/2011, à 17:47

nordinatueur

Re : Historique et signets pour la navigation en console

Eh bien c'est surtout le clear qui pose problème !
Avec les symboles ^[[A et ^[[B ( respectivement Ctrl+V puis Haut et Bas ) dans printf permettent de se déplacer vers le haut, vers le bas et à gauche et à droite avec ^[[D et ^[[C.
Pour le fait que ça change de dossier c'est surtout un problème d'optimisation, et le changement de dossier ne consomme pas tant que ça en bash (surtout si c'est le builtin...)

Essaye

printf "1er argument\n\n^[[ADeuxième argument^[[BTroisième argument ...\n"

Où il faut taper Ctrl+V suivi de et et non les caractères ^[[A, ^[[B.
Tu vois que « \n » fait un retour à la ligne et un retour chariot, alors que <C-V>↓ descend sur la même colonne.
Essaye aussi :

printf "Bonsoir %12s tout le monde";
printf "Bonsoir \r %12s tout le monde";

La syntaxe %${n}s produit $n espaces. Dans le premier cas, la deuxième partie est « poussée » de douze colonnes. Dans le deuxième, les douze espaces écrasent la chaine existante grâce au retour chariot \r

Après c'est surement un question de goût, mais ça m'ennuie juste un tout petit peu que le dossier change... Enfin je dormirai bien quand même cette nuit ...
Pour les signets, je ne pense pas que ce soit nécessaire.
Je pense qu'une bonne utilisation de l'historique efface toute utilité des signets à long terme. (L'inverse est peut-être vrai aussi...)

Je me pencherai un peu dessus pour voir comment implémenter ces exemples dans tes fonctions quand j'aurai un peu plus de temps...

Dernière modification par nordinatueur (Le 19/01/2011, à 17:49)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#10 Le 19/01/2011, à 18:58

nordinatueur

Re : Historique et signets pour la navigation en console

Une idée !
Si on admet que tu peux te positionner au bon endroit (la ligne où tu indiques la flèche -->) :
Il faudrait que tu décales toutes tes lignes de quatre colonnes. (comme la ligne courante avec la flèche)
Tu peux te positionner sur cette ligne, et effectuer :
« printf "\r%3s<C-V>↑\r--> \r"; »
Cela va effacer la flèche au début en la remplaçant par trois espaces, puis monter sur la ligne du dessus, au début, et écrire une flèche à l'endroit où tu aurais laissé quatre espaces.

J'ai pris un fichier texte dans le terminal '/dev/pts/2' (obtenu grâce à la commande 'tty') contenant :

    ligne 1
    ligne 2
    ligne 3
    ligne 4
    ligne 5
    ligne 6
    ligne 7
    ligne 8

Dans un deuxième terminal j'utilise les raccourcis clavier definis par :

bind -x '"\C-a":printf "\r%3s^[[A\r-->">/dev/pts/2'
bind -x '"\C-e":printf "\r%3s^[[B\r-->">/dev/pts/2'

Où tu dois remplacer ^[[A par <C-V>↑ et ^[[B par <C-V>↓.
Alors <C-a> (resp. <C-e>) va faire monter (resp. descendre) la flèche dans le deuxième terminal...

Le seul hic c'est que dans ce « test », le deuxième terminal doit accéder à /dev/pts/ et donc être manipulé en root.
Le premier terminal (/dev/pts/2 ici) ne peut pas écrire sur lui même car la ligne avec le $PS1 apparait sans arrêt en écrivant :
$USER@$HOST:$PWD$ au début...


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#11 Le 20/01/2011, à 16:53

ehmicky

Re : Historique et signets pour la navigation en console

Merci à toi !
Je vais faire ça mais je vais passer par terminfo et tput plutôt que de taper directement les séquences. En fait le problème, c'est bien ces séquences marchent bien, je peux pas remonter que d'un nombre limité de lignes (le nombre de lignes du terminal). Donc je peux remonter en haut de l'écran, mais pas au-delà comme je le ferais avec PageUp ou la barre de défilement. Et en fait ça me pose problème pour trois raisons :
  - si l'utilisateur a un très grand historique, il doit pouvoir remonter tout en haut. Jusqu'ici, je tronque l'historique imprimé en fonction de la position courante pour permettre ça, mais tput me permettrait d'éviter ce trafficotage smile
  - pour pouvoir réafficher le terminal dans le même état qu'avant d'avoir tapé cdi
  - parce que je pourrais faire des trucs kikoo lol avec big_smile
Mais bon, le manpage de terminfo fait 2000 lignes (bon ok c'est rien comparé à man gcc smile ), donc ça va me prendre un peu de temps, mais j'y reviendrai, c'est sûr.


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#12 Le 20/01/2011, à 17:18

nordinatueur

Re : Historique et signets pour la navigation en console

Courage !
Je vais peut-être m'y mettre aussi du coup. Ça m'a l'air intéressant...


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#13 Le 20/01/2011, à 17:46

ehmicky

Re : Historique et signets pour la navigation en console

Oui, en plus tput est basé sur ncurses, et ensuite ça peut être un bon moyen d'apprendre ncurses pour ses projets en C ou C++. Mais faut être motivé, c'est bien documenté, mais c'est un peu lourd big_smile


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#14 Le 21/01/2011, à 02:58

ehmicky

Re : Historique et signets pour la navigation en console

@nordinatueur: Ca y est, c'est fait wink

Dernière modification par ehmicky (Le 21/01/2011, à 02:59)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#15 Le 21/01/2011, à 15:06

nordinatueur

Re : Historique et signets pour la navigation en console

Trop cool ! Hâte de tester ça !

EDIT après test :
C'est tout simplement magnifique !
Je vais m'intéresser au code !
En plus c'est compatible avec ma fonction de signets ...
J'adopte ! Bon on verra à l'utilisation, mais pour le principe j'aime.

Dernière modification par nordinatueur (Le 21/01/2011, à 15:13)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#16 Le 22/01/2011, à 05:13

ehmicky

Re : Historique et signets pour la navigation en console

J'ai mis quelques lignes au début expliquant (en plus des commentaires big_smile) le principe général. N'hésite(z) surtout pas si tu trouves qu'il y a des choses à revoir au niveau du code, ou des choses qu'on pourrait faire plus simplement !


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#17 Le 22/01/2011, à 11:01

Kookaburra

Re : Historique et signets pour la navigation en console

ehmicky a écrit :

voici un petit script pour naviguer dans l'historique de navigation en console (à mettre ou sourcer dans son ~/.bashrc)

Comment fait-on cela ?
J'ai déjà un peu bidouiller mon bashrc, mais je ne connais pas cette manip ... Et je n'ai rien trouvé expliquant clairement comment faire hmm J'ai surement pas chercher au bon endroit, je sais roll
Merci wink


Portable17p : CrunchBangLinux // EeePC : ArchLinux
Openbox Addict : http://kookadimi.deviantart.com
Mes photos : http://www.fluidr.com/photos/kookadimi/sets
Votre téléphone mobile dispose de plus de puissance que l'ensemble des ordinateurs de la NASA en 1969. La NASA a lancé un homme sur la Lune. Vous lancez un oiseau sur des cochons...

Hors ligne

#18 Le 22/01/2011, à 11:08

ehmicky

Re : Historique et signets pour la navigation en console

Salut,
Tu copies le script dans un fichier à part (par exemple script.sh) et tu rajoutes n'importe où dans .bashrc :

. /chemin/vers/script.sh

(c'est le point au début qui importe).
N'hésite pas à donner un feedback smile

Dernière modification par ehmicky (Le 22/01/2011, à 11:10)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#19 Le 22/01/2011, à 11:38

Kookaburra

Re : Historique et signets pour la navigation en console

ehmicky a écrit :

Tu copies le script dans un fichier à part (par exemple script.sh) et tu rajoutes n'importe où dans .bashrc :

arf, c'était super simple en fait ... J'étais parti sur des trucs plus compliqué, lol (genre "source" ...)
Bref, j'adore ce que tu as fait, comment c'est trop pratique smile
En 2mins d'utilisation, je ne comprends même pas que ce ne soit pas une fonction par défaut dans Bash ! big_smile
Merci du partage wink


Portable17p : CrunchBangLinux // EeePC : ArchLinux
Openbox Addict : http://kookadimi.deviantart.com
Mes photos : http://www.fluidr.com/photos/kookadimi/sets
Votre téléphone mobile dispose de plus de puissance que l'ensemble des ordinateurs de la NASA en 1969. La NASA a lancé un homme sur la Lune. Vous lancez un oiseau sur des cochons...

Hors ligne

#20 Le 22/01/2011, à 18:10

nordinatueur

Re : Historique et signets pour la navigation en console

@Kookaburra : Tu peux aussi dans un terminal taper

source chemin/vers/le/script

@ehmicky : Pour ce qui est du code, je te dirai ça un peu plus tard. Je ne connais pas encore ncurses, et je vais donc m'y mettre un peu grâce à toi.
Sur ce que j'en ai vu pour l'instant, je ne vois pas de bug apparent, puisqu'il n'y a quasiment aucune manip' côté utilisateur. Ton script gère tout. Il faut juste voir au niveau de l'encodage, ou de dossier avec une espace ou des caractères spéciaux éèàçù, etc, sans oublier [](){}_-, etc.


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#21 Le 22/01/2011, à 21:19

ehmicky

Re : Historique et signets pour la navigation en console

En fait pour ncurses, il y a que deux commandes : tput smcup qui sauvegarde l'écran, et tput rmcup, qui le restaure big_smile


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#22 Le 23/01/2011, à 01:34

ehmicky

Re : Historique et signets pour la navigation en console

Mise à jour : rajouté une fonction de signets, comme les signets d'un navigateur de fichiers.
Utilisation :
  - cda [DIR] (ou cd -a [DIR]) rajoute un nouveau signet pointant vers le répertoire DIR (par défaut le répertoire courant), et propose également de créer un alias vous déplaçant directement vers ce répertoire.
  - cds (ou cd -s) permet de naviguer dans les signets. De plus : la touche Suppr supprime le signet sélectionné ; la touche Flèche Droite le déplace ; la touche Gauche le range (après l'avoir déplacé).
Enfin, en plus de l'habituel cd DIR, vous pouvez désormais également faire cd PATTERN, ce qui permet de se déplacer vers le premier signet dont le chemin correspondant à PATTERN (globbing, insensible à la casse).
Exemple :

$ pwd
/home/donnees/Programmes/Utilitaires
$ cda
Quel alias souhaitez-vous donner à /home/donnees/Programmes/Utilitaires ?
Ne rien rentrer si pas d'alias souhaité : util
$ cd /media

Maintenant, n'importe laquelle de ces commandes permet de se déplacer à nouveau vers /home/donnees/Programmes/Utilitaires :

$ util
$ cd rogram
$ cd pro*mes

Ca a l'air ok, mais il y a peut-être encore des bugs, je vais regarder plus en profondeur demain, mais vous pouvez tester smile

Dernière modification par ehmicky (Le 23/01/2011, à 02:54)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#23 Le 23/01/2011, à 13:30

nordinatueur

Re : Historique et signets pour la navigation en console

J'en jubile !
<blague>
    Et une fonction d'import/export de signets ... Et une fonction qui vérifie s'il y a un dossier "Santa Claus" sur l'ordinateur de mon voisin. Je bloque un peu sur un « cd Cuisine; mkcoffee --slow ; »
</blague>

J'ai tellement envie d'essayer tout de suite...


... Je viens d'essayer... C'est tout simplement magique ! La gestion des signets est aisée, la création est très simple aussi.
Ce n'est plus qu'un simple outil. C'est une révolution. Ça change la façon de voir son terminal... Je suis bluffé !
Petit Benchmark pour le sourire ...

$ time cd imag

real    0m0.004s
user    0m0.000s
sys    0m0.000s

$ su ubuntu 
Mot de passe : 
$ time cd

real    0m0.000s
user    0m0.000s
sys    0m0.000s

Ceci indique une légère perte de performance. Enfin bon je pense qu'on peut perdre un demi-dixième de seconde au changement de dossier.
<hs> Y a-t-il un utilitaire qui te donne le temps que tu as mis pour taper un/des mot(s) ? </hs>

(je ne comprends pas ce forum... parfois la connexion est rompue, et parfois elle est conservée après un redémarrage...)


EDIT : Tes signets ne fonctionnent pas bien, car tu ne récupères pas le chemin absolu du nom donné en argument.
Par exemple :

francisco@Francisco:$ cd Images/
francisco@Francisco:~/Images$ cda
Quel alias souhaitez-vous donner à /home/nordine/Images ?
Ne rien rentrer si pas d'alias souhaité : 
francisco@Francisco:~/Images$ cda WebComics/
Quel alias souhaitez-vous donner à WebComics/ ?
Ne rien rentrer si pas d'alias souhaité : 
francisco@Francisco:~/Images$ cd
francisco@Francisco:~$ cd web
bash: cd: WebComics/: Aucun fichier ou dossier de ce type

Dernière modification par nordinatueur (Le 23/01/2011, à 13:34)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#24 Le 23/01/2011, à 15:37

ehmicky

Re : Historique et signets pour la navigation en console

Merci pour la remontée de bugs ! Effectivement, faut que je regarde le code à nouveau, je le fais tout de suite (ce que tu dis va être vite corrigé).
Sinon, pour les performances, la perte est en fait plus importante : sur mon petit netbook un cd met 0.03 secondes avec les modif', et 0.00006 secondes sans les modif'. Mais dans l'absolu 0.03 secondes (et encore moins sur un PC moins lent smile ) reste quasi-instantané.

Edit : déjà corrigé smile. Mais je vais encore retoucher d'autres choses, avant de mettre à jour wink
Edit2 : je pense que je vais supprimer cdp, parce que je pense pas que ce soit si utile smile

Dernière modification par ehmicky (Le 23/01/2011, à 16:07)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#25 Le 23/01/2011, à 17:08

nordinatueur

Re : Historique et signets pour la navigation en console

J'ajouterai surtout que vu le temps que ça fait gagner, on peut se le permettre... Le temps perdu est bien inférieur au temps que l'on mettrai à chercher le dossier, ou simplement taper le nom complet du dossier enregistré dans les signets...
( Comment comptes-tu le temps au cent-millième de seconde près ? Tu en fais mille ? Mais il faut compter la boucle... )

J'ai même autre chose ! Plus l'alias (ou le signet) est utilisé plus c'est rapide ! big_smile Suite de séries de benchmarks décroissants à l'appui !

Pour cds aussi, il faudrait pouvoir sortir « proprement » si on ne veut veut rien sélectionner... Sinon on doit faire ^C et l'écran n'est pas restauré... :-(
C'est surtout embêtant au début, quand on n'est pas sûr d'avoir mis le dossier en signet.


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

Haut de page ↑