Recherche sur le site Web

L’achèvement des onglets Linux est encore meilleur que vous ne le pensez


Résumé

  • La fonction de remplissage d’onglet permet de gagner du temps et d’éviter les erreurs en remplissant automatiquement les commandes et les noms de fichiers.
  • Les shells Linux comme bash et zsh offrent de puissantes fonctionnalités de complétion d’onglet qui gèrent les sous-commandes et les options.
  • La commande git met en valeur tout le potentiel de tab avec des complétions spécifiques au contexte.

Linux regorge de raccourcis, il suffit de savoir ce qu’ils sont ou où les chercher. La complétion d’onglets est l’une de ces fonctionnalités qui est excellente dans sa forme la plus simple, avec un pouvoir caché que vous ignorez peut-être.

Qu’est-ce que l’achèvement d’onglets?

La complétion des onglets est une petite fonctionnalité fantastique qui ajoute de la commodité, permet de gagner du temps et peut même aider à prévenir les erreurs. C’est l’une des plus anciennes formes de saisie automatique en informatique : appuyez sur Tab sur une ligne de commande et vous verrez une commande ou un nom de fichier terminé (s’il n’est pas ambigu) ou un ensemble d’options possibles (s’il est ambigu).

Voici quelques exemples de la façon dont fonctionne la complétion d’onglets.

La complétion de tabulation est une fonctionnalité de votre shell, et cet article se concentre sur deux des plus utilisées : bash et zsh. L’achèvement est hautement configurable et les fonctionnalités varient d’un système à l’autre.

Tapez les premières lettres d’une commande (essayez apr ou mkd), puis appuyez sur Tab. Si votre shell ne trouve qu’une seule commande commençant par ces lettres, il la complétera automatiquement en imprimant les lettres restantes. Maintenant, vous pouvez appuyer sur Entrée pour exécuter la commande ou continuer à taper pour fournir plus d’arguments.

Si votre texte initial correspond à plus d’une commande, leurs noms s’afficheront à l’écran. Voici un exemple montrant le texte rm suivi d’une tabulation :

Vous pouvez continuer à taper et appuyer sur Tab pour affiner la liste jusqu’à ce qu’elle soit sans ambiguïté ou que vous ayez tapé votre commande complète.

La complétion de tabulation fonctionne également pour les noms de fichiers que vous fournissez comme arguments. Par exemple, vous pouvez taper ls /u suivi de Tab et votre shell devrait le compléter en ls /usr/. Il est donc beaucoup plus rapide de taper des chemins plus longs et il est également beaucoup moins sujet aux erreurs.

Ce niveau d’achèvement d’onglet transformera à lui seul votre expérience Linux. Lorsque j’ai entendu parler de la complétion d’onglets, c’était magique, et je ne pense pas que je pourrais vivre sans cette fonctionnalité aujourd’hui. Mais, comme je l’ai découvert récemment, la complétion d’onglets offre bien plus que la simple saisie de commandes et de noms de fichiers.

L’achèvement des onglets est bien plus

Pour commencer, essayez de compléter l’onglet avec une commande comme cd, dans un répertoire contenant à la fois des fichiers et des dossiers. Vous devriez remarquer que cd {start-of-directory}, puis Tab, complètent automatiquement le nom du répertoire, mais cd {start-of-file}, puis Tab, ne le font pas. Le shell est assez intelligent pour reconnaître que l’argument de cd devrait être un chemin vers un répertoire, pas un fichier, donc il complète automatiquement le premier, mais pas le second.

Votre shell devrait inclure une barre oblique de fin après avoir rempli un répertoire, même si vous n’avez besoin que de fournir le nom du répertoire. Cela vous permet de compléter rapidement un chemin entier sans avoir à vous arrêter et à taper chaque/entre les noms de répertoires.

En affichant toutes les correspondances lorsqu’il y en a plusieurs, votre coquille peut vous aider à affiner tout ce que vous essayez de taper. Mais certains coquillages vont plus loin. Par exemple, dans zsh, sur macOS, lorsque je tape ls Do suivi de Tab, mon shell imprime deux correspondances, Documents et Téléchargements :

Si j’appuie à nouveau sur Tab, il se termine à ls Documents/, et en appuyant sur Tab d’autres fois, il fait des cycles entre ls Documents/ et ls Téléchargements/. Notez que cela ne se produit que lorsqu’il y a ambiguïté. Si vous tapez ls Documents/, puis appuyez sur Tab, la saisie semi-automatique affichera tous les fichiers dans Documents plutôt que de passer au répertoire Téléchargements.

Ajoutez bind TAB :menu-complete à votre ~/.bashrc ou TAB :menu-complete à votre ~/.inputrc si vous voulez ce comportement.

Pour accepter un achèvement lors d’un cycle, mais continuer à remplir la tabulation, par exemple pour un long chemin, vous pouvez appuyer sur/à la fin du répertoire que vous voulez sélectionner.

La complétion de tabulation peut également gérer les options prises en charge par la commande que vous avez tapée. Par exemple, essayez de taper mkdir - suivi d’une tabulation. Encore une fois, les résultats dépendront de votre environnement, mais dans tous les cas, vous devriez pouvoir voir une liste d’options prises en charge par mkdir :

Sur macOS, mon shell affiche des options d’une seule lettre pour mkdir, comme -m et -p. À côté de chacun, il affiche un texte d’utilisation qui explique ce que fait l’option. Sur Ubuntu, mon shell affiche de longues options. Il n’imprime aucune information d’utilisation, mais les options longues sont de toute façon plus auto-documentées.

La commande git passe à l’étape suivante

Les options de saisie automatique m’ont vraiment ouvert les yeux. J’étais tellement habitué à utiliser man ou une option --help pour montrer l’utilisation de la commande que je ne savais pas que mon shell pouvait faire une grande partie du travail pour moi. Mais c’est la commande git qui m’a vraiment montré le véritable pouvoir de la saisie automatique, et cela a transformé ma façon de travailler depuis.

Le programme git est incroyablement conscient de lui-même, de sorte que ses options de saisie semi-automatique fournissent effectivement une interface alternative. Vous pouvez commencer par explorer toutes les sous-commandes de git en tapant git suivi d’une tabulation :

Mais la saisie automatique git montre toute sa puissance lorsqu’elle travaille dans un dépôt git. Disons que vous avez apporté une modification à un seul fichier local, comme un README.md :

Tapez maintenant git add, puis un Tab, et votre shell devrait le transformer en git add README.md. Le programme git a reconnu que la sous-commande add peut être suivie d’une liste de noms de fichiers pour les ajouter au commit courant. Il est conscient qu’il n’est logique d’ajouter que les fichiers qui ont réellement changé, afin qu’il puisse compléter automatiquement le nom complet du seul fichier qui doit être ajouté.

De même, une fois que vous avez ajouté un fichier, git commit puis Tab complétera automatiquement son nom, ainsi que d’autres fichiers que vous pouvez valider immédiatement, y compris les fichiers que vous n’avez pas encore ajoutés :

Cet achèvement tient même compte des arguments. Par exemple, une fois que vous avez ajouté un fichier à l’index, vous pouvez le dépréparer à l’aide de git restore --staged, comme l’explique git status. À ce stade, git restore --staged suivi d’un onglet affichera juste README.md, le seul fichier qui est préparé :


La complétion d’onglets est si utile que vous vous retrouverez à l’utiliser tout le temps une fois que vous l’aurez découvert. Mais il est toujours utile d’être curieux : continuez à appuyer sur la touche Tab à différents endroits de votre chaîne de commande, et vous apprendrez exactement à quel point cette fonctionnalité peut être puissante.

Articles connexes: