L’édition de fichiers texte directement à partir du terminal Linux peut être difficile, surtout si vous utilisez un éditeur de texte compliqué comme Vi ou Vim. Les utilisateurs débutants ont du mal à s’y retrouver dans les éditeurs de texte en ligne de commande et ont souvent du mal à mémoriser les raccourcis clavier utilisés pour effectuer les opérations de base.


Même la suppression de lignes dans Vi et Vim peut être éprouvante pour les nouveaux venus. L’utilisation d’un outil rudimentaire comme un éditeur de texte ne doit pas être si difficile.

Voici comment vous pouvez supprimer une ou plusieurs lignes d’un fichier texte en utilisant Vi et Vim.


Comment supprimer une seule ligne en Vi/Vim

Il y a une meilleure façon de supprimer des lignes complètes dans Vi et Vim que de spammer Retour arrière sur le clavier.

Pour supprimer une ligne dans Vi ou Vim, passez d’abord en mode normal. Si vous êtes en mode commande ou en mode insertion, vous pouvez revenir au mode normal en appuyant sur la touche Escape. Si vous ne savez pas ce que sont les modes, c’est une bonne occasion d’apprendre les bases de Vim.

Mettez en surbrillance la ligne que vous voulez supprimer, puis appuyez sur dd ou D sur le clavier. L’éditeur supprimera automatiquement la ligne entière du fichier.

Les commandes de Vi et Vim sont sensibles à la casse, ce qui signifie que d et D sont identifiés comme deux commandes distinctes.

Frapper dd ou D plusieurs fois supprimera plusieurs lignes une par une. La ligne suivante sera automatiquement mise en évidence une fois que la précédente aura été supprimée.

Pour supprimer une ligne spécifique dans Vi/Vim, appuyez sur Escape pour entrer en mode commande, puis tapez nd pour supprimer une ligne particulière, où n est le numéro de la ligne que vous voulez supprimer.

Par exemple, si vous voulez supprimer la 150ème ligne du fichier /var/log/messages vous l’ouvrirez avec Vi/Vim, puis vous taperez 150d pour supprimer la ligne.

Suppression de plusieurs lignes dans Vi et Vim

Si vous trouvez qu’il n’est pas pratique de frapper plusieurs fois des touches du clavier, vous pouvez supprimer plusieurs lignes à la fois en modifiant la commande susmentionnée. Au lieu d’appuyer simplement sur ddvous pouvez spécifier le nombre de lignes que vous voulez supprimer.

Par exemple, en tapant 3dd supprimera les trois lignes suivantes du fichier.

Si vous souhaitez supprimer plusieurs lignes dans une plage spécifique, vous devrez d’abord passer en mode commande (appuyez sur Escape en mode normal). Ensuite, utilisez la syntaxe suivante pour créer votre propre commande de suppression :

 :[start],[end]d 

Par exemple, pour supprimer les lignes entre les plages un et cinq :

 :1,5d 

Vous pouvez également utiliser des caractères génériques dans la commande ci-dessus.

  1. . (Point) : Se réfère à la ligne en cours
  2. $ (Dollar) : Indique la fin du fichier
  3. % (Pourcentage) : Correspond à toutes les lignes du fichier

Par exemple :

 :.,5d # deletes lines between the current line and the fifth line
:.,$d # removes all lines starting from the current line till the end
:%d # clears the entire file

Supprimer les lignes basées sur des expressions régulières

Les expressions régulières sont utiles lorsque vous souhaitez rechercher et supprimer des lignes contenant un motif. Vous pouvez supprimer les lignes contenant un mot spécifique, les lignes commençant par une lettre particulière, et plus encore. Dans Vi/Vim, vous pouvez effectuer cette opération à l’aide de la fonction g qui signifie « global ».

La syntaxe de base de la commande est :

 :g/pattern/command 

Puisque vous voulez supprimer des éléments, vous remplacerez commande dans la chaîne ci-dessus avec d. En ce qui concerne le motif, vous pouvez utiliser n’importe quelle expression régulière valide pour faire correspondre les lignes que vous devez supprimer dans un fichier.

Par exemple, pour supprimer les lignes contenant le mot « delete », entrez ce qui suit :

 :g/delete/d 

Vous pouvez inverser cette opération en faisant précéder la première barre oblique (/) avec un point d’exclamation (!) ou en substituant g avec vqui agit comme l’inverse de g.

 :g!/word/d
:v/word/d

Pour faire correspondre et supprimer les lignes commençant par la lettre « T », utilisez :

 :g/^T/d 

Il faut beaucoup de pratique et de répétitions pour maîtriser les outils de ligne de commande comme Vi et Vim. Pour vous faciliter la tâche, ajoutez à vos favoris notre aide-mémoire sur les commandes Vim pour vous y référer ultérieurement.

Spamming Backspace ? Non, merci ! J’utilise Vi/Vim

Si vous voulez devenir un utilisateur expérimenté de Linux, apprendre les tenants et aboutissants des utilitaires de la ligne de commande est la direction vers laquelle vous devriez vous diriger. Sous Linux, vous pouvez utiliser divers raccourcis et combinaisons de touches pour effectuer des tâches qui, autrement, prendraient beaucoup de temps et d’efforts.

Pour ceux qui ont hâte de maîtriser Vim, il y a de bonnes nouvelles. Le paquet vim est livré avec Vimtutor, un tuteur de ligne de commande gratuit qui vous aidera à utiliser Vim à son plein potentiel.