Guest User

Untitled

a guest
May 23rd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1. Complétion automatique
  2.  
  3. Parmi les choses qui vont contribuer, je l'espère, à vous faire apprécier le travail avec le terminal, on retrouve la complétion automatique. Cette fonction est plus souvent connue sous son descriptif anglais *Tab completion* en raison de l'utilisation intensive de la touche tabulation. C'est une fonction offerte par Bash et d'autres interpréteurs de commandes modernes qui a pour but de nous épargner de beaucoup de tape au clavier en tentant de deviner ce qu'on veut taper.
  4.  
  5. La complétion automatique de base tente de compléter le nom des fichiers pour nous en se basant sur les fichiers existant. Supposons que l'on désire démarrer l'éditeur de text gedit pour modifier le fichier *un-fichier-avec-un-tres-long-nom.txt*, on devrait inscrire la commande *gedit un-fichier-avec-un-tres-long-nom.txt*. Afin d'éviter d'avoir à taper le long nom de fichier, on peut écrire le début de la commande, comme *gedit un*, et appuyer sur la touche tabulation. Bash va reconnaitre que nous voulions taper le nom du fichier existant et va automatiquement compléter le reste du nom pour nous.
  6.  
  7. S'il y a une ambiguité, par exemple s'il existe un fichier *un-fichier-avec-un-nom-encore-plus-long.txt* en plus du fichier précédent, Bash va compléter la portion du nom commune à tous les choix possibles et s'arrêter là où il y a ambiguité. On obtiendra donc *gedit un-fichier-avec-un-*, puisque la lettre suivante diffère dans les deux noms de fichiers. Si on appuie de nouveau sur la touche tabulation, Bash va afficher tous les choix possibles. Dans notre exemple, on obtiendrait ceci:
  8.  
  9. $ gedit un-fichier-avec-un-
  10. un-fichier-avec-un-nom-encore-plus-long.txt un-fichier-avec-un-tres-long-nom.txt
  11.  
  12.  
  13. On peut alors tapper la lettre suivante du nom qu'on veut taper et appuyer sur tabulation à nouveau pour compléter le nom.
  14.  
  15.  
  16. La complétion automatique avancée est un peu plus intelligente. Pour certaines commandes dont Bash connait la syntaxe (SVN en est un exemple), la complétion est en mesure de détecter ce que le programme attend comme paramètre. Par exemple, la syntaxe de SVN est *svn <action>* où <action> est l'action à effectuer (checkout, add, commit ou autre). Si on commence à taper *svn * et que l'on appuie deux fois sur tabulation, Bash va nous afficher la liste des options possibles:
  17.  
  18. $ svn
  19. add cl diff list move propdel rename unlock
  20. annotate cleanup export lock mv propedit resolve update
  21. blame co -h log pdel propget resolved --version
  22. cat commit help ls pedit proplist revert
  23. changelist copy --help merge pget propset rm
  24. checkout cp import mergeinfo plist pset status
  25. ci delete info mkdir praise remove switch
  26.  
  27. Si on poursuit et qu'on tape *com* pour obtenir *svn com* et qu'on appuie sur tabulation à nouveau, la complétion automatique complètera pour *svn commit*. On peut même pousser l'audace et inscrire *svn commit -*. La complétion avancée nous donnera alors la liste des options qui sont applicables à l'action *commit* de *svn*.
  28.  
  29. $ svn commit -
  30. --changelist --encoding --help --no-auth-cache -q
  31. --config-dir -F --keep-changelists --non-interactive --quiet
  32. --config-option --file -m --non-recursive --targets
  33. --depth --force-log --message --no-unlock --username
  34. --editor-cmd -h -N --password --with-revprop
  35.  
  36. En bref, la complétion automatique est un outil permettant d'augmenter de façon importante notre productivité avec le terminal. Cette fonction permet aussi de passer plus de temps à penser à la commande qu'on est en train d'écrire et moins à recopier bêtement des noms de fichiers.
  37.  
  38. TODO: ajouter un warning comme quoi la complétion avancée n'est pas disponible a l'école, et qu'il faut parfois installer un paquet, bash-completion, pour l'avoir.
Add Comment
Please, Sign In to add comment