GNU/Linux >> Tutoriels Linux >  >> Linux

Travailler avec l'éditeur Vim (éditeur de texte)

Si vous travaillez en mode ligne de commande, vous voudrez peut-être vous familiariser avec au moins un éditeur de texte qui fonctionne dans la console Linux. L'éditeur vi est l'éditeur d'origine utilisé sur les systèmes Unix. Il utilise le mode graphique de la console pour émuler une fenêtre d'édition de texte, vous permettant de voir les lignes de votre fichier, de vous déplacer dans le fichier et d'insérer, de modifier et de remplacer du texte.

Bien qu'il s'agisse probablement de l'éditeur le plus compliqué au monde (du moins de l'avis de ceux qui le détestent), il offre de nombreuses fonctionnalités qui en ont fait un incontournable pour les administrateurs Unix pendant des décennies. Lorsque le projet GNU a porté l'éditeur vi dans le monde open-source, ils ont choisi d'y apporter quelques améliorations. Parce qu'il ne ressemblait plus à l'éditeur vi original trouvé dans le monde Unix, les développeurs l'ont également renommé, en vi amélioré ou vim. Pour faciliter la vie de l'administrateur système, presque toutes les distributions Linux créent un alias nommé vi qui pointe vers le programme vim :

# alias vi='vim'

Bases de vim

L'éditeur vim fonctionne avec des données dans une mémoire tampon. Pour démarrer l'éditeur vim, tapez simplement le fichier que vous souhaitez éditer :commande vim (ou vi s'il y a un alias) et le nom du fichier

# vi /etc/fstab

Si vous démarrez vim sans nom de fichier, ou si le fichier n'existe pas, vim ouvre une nouvelle zone tampon pour l'édition. Si vous spécifiez un fichier existant sur la ligne de commande, vim lira l'intégralité du contenu du fichier dans une zone tampon, où il sera prêt à être modifié, comme indiqué ci-dessous :

L'éditeur vim détecte le type de terminal pour la session et utilise un mode plein écran pour utiliser toute la fenêtre de la console pour la zone de l'éditeur. La fenêtre d'édition initiale de vim affiche le contenu du fichier (s'il y en a) ainsi qu'une ligne de message en bas de la fenêtre. Si le contenu du fichier n'occupe pas tout l'écran, vim place un tilde sur les lignes qui ne font pas partie du fichier.

La ligne de message en bas indique des informations sur le fichier modifié, en fonction de l'état du fichier et des paramètres par défaut de votre installation vim. Si le fichier est nouveau, le message [Nouveau fichier] apparaît.

L'éditeur vim a deux modes de fonctionnement :

  • Mode normal
  • Mode insertion

Lorsque vous ouvrez un fichier pour la première fois (ou démarrez un nouveau fichier) pour le modifier, l'éditeur vim passe en mode normal. En mode normal, l'éditeur vim interprète les frappes comme des commandes.

En mode insertion, vim insère chaque touche que vous tapez à l'emplacement actuel du curseur dans le tampon. Pour entrer en mode insertion, appuyez sur la touche i. Pour sortir du mode insertion et revenir en mode normal, appuyez sur la touche Échap du clavier.

En mode normal, vous pouvez déplacer le curseur autour de la zone de texte en utilisant les touches fléchées (tant que votre type de terminal est correctement détecté par vim). Les commandes vim incluent des commandes pour déplacer le curseur :

  • h pour se déplacer d'un caractère vers la gauche
  • j pour descendre d'une ligne (la ligne suivante dans le texte)
  • k pour remonter d'une ligne (la ligne précédente dans le texte)
  • l pour déplacer un caractère vers la droite

Se déplacer ligne par ligne dans des fichiers texte volumineux peut devenir fastidieux. Heureusement, vim fournit quelques commandes pour accélérer les choses :

  • Page vers le bas (ou Ctrl+F ) pour avancer d'un écran de données
  • Page précédente (ou Ctrl+B ) pour reculer d'un écran de données
  • G pour passer à la dernière ligne du tampon
  • num G pour passer à la ligne numéro num dans le buffer
  • gg pour passer à la première ligne du tampon

L'éditeur vim a une fonction spéciale dans le mode normal appelée mode ligne de commande. Le mode ligne de commande fournit une ligne de commande interactive dans laquelle vous pouvez entrer des commandes supplémentaires pour contrôler les actions dans vim. Pour accéder au mode ligne de commande, appuyez sur la touche deux-points en mode normal. Le curseur se déplace sur la ligne de message et deux-points apparaissent, attendant que vous saisissiez une commande. Dans le mode ligne de commande, plusieurs commandes permettent d'enregistrer le tampon dans le fichier et de quitter vim :

  • q pour quitter si aucune modification n'a été apportée aux données du tampon
  • q ! pour quitter et annuler toute modification apportée aux données du tampon
  • w filename pour enregistrer le fichier sous un autre nom de fichier
  • wq pour enregistrer les données du tampon dans le fichier et quitter

Modification des données

En mode insertion, vous pouvez insérer des données dans le tampon; cependant, vous devez parfois ajouter ou supprimer des données après les avoir déjà entrées dans le tampon. En mode normal, l'éditeur vim fournit plusieurs commandes pour éditer les données dans le tampon. Le tableau ci-dessous répertorie certaines commandes d'édition courantes pour vim.

Commande Description
x Supprime le caractère à la position actuelle du curseur.
jj Supprime la ligne à la position actuelle du curseur.
dw Supprimez le mot à la position actuelle du curseur.
d$ Supprime jusqu'à la fin de la ligne à partir de la position actuelle du curseur.
J Supprime le saut de ligne à la fin de la ligne à la position actuelle du curseur (joint les lignes).
u Annuler la commande d'édition précédente.
un Ajouter des données après la position actuelle du curseur.
A Ajouter des données à la fin de la ligne à la position actuelle du curseur.
r caractère Remplacer un seul caractère à la position actuelle du curseur par char.
Texte R Écraser les données à la position actuelle du curseur avec du texte, jusqu'à ce que vous appuyiez sur Échap.

Certaines des commandes d'édition vous permettent également d'utiliser un modificateur numérique pour indiquer combien de fois exécuter la commande. Par exemple, la commande 2x supprime deux caractères, à partir de la position actuelle du curseur, et la commande 5dd supprime cinq lignes, en commençant par la ligne à partir de la position actuelle du curseur.

Une fonctionnalité standard des éditeurs modernes est la possibilité de couper ou de copier des données, puis de les coller ailleurs dans le document. L'éditeur vim fournit un moyen de le faire. Couper et coller est relativement facile. Vous avez déjà vu les commandes qui peuvent supprimer des données du tampon. Cependant, lorsque vim supprime des données, il les conserve en fait dans un registre séparé. Vous pouvez récupérer ces données en utilisant la commande p.

Par exemple, vous pouvez utiliser la commande dd pour supprimer une ligne de texte, puis déplacer le curseur à l'emplacement du tampon où vous souhaitez le placer, puis utiliser la commande p. La commande p insère le texte après la ligne à la position actuelle du curseur. Vous pouvez le faire avec n'importe quelle commande qui supprime du texte. Copier du texte est un peu plus délicat. La commande de copie dans vim est y (pour tirer). Vous pouvez utiliser le même deuxième caractère avec y qu'avec la commande d( yw pour extraire un mot, y$ pour tirer jusqu'à la fin d'une ligne). Après avoir tiré le texte, déplacez le curseur à l'endroit où vous voulez placer le texte et utilisez la commande p. Le texte copié apparaît maintenant à cet endroit.

Copier est délicat dans la mesure où vous ne pouvez pas voir ce qui s'est passé parce que vous n'affectez pas le texte que vous copiez. Vous ne savez jamais avec certitude ce que vous avez tiré jusqu'à ce que vous le colliez quelque part. Mais il existe une autre fonctionnalité de vim qui vous aide à tirer dessus. Le mode visuel met en surbrillance le texte lorsque vous déplacez le curseur. Vous utilisez le mode visuel pour sélectionner le texte à copier pour le coller. Pour entrer en mode visuel, déplacez le curseur à l'endroit où vous voulez commencer à tirer et appuyez sur v. Vous remarquerez que le texte à la position du curseur est maintenant mis en surbrillance. Ensuite, déplacez le curseur pour couvrir le texte que vous souhaitez extraire (vous pouvez même déplacer les lignes vers le bas pour extraire plus d'une ligne de texte). Lorsque vous déplacez le curseur, vim met en surbrillance le texte dans la zone de copie. Une fois que vous avez recouvert le texte que vous souhaitez copier, appuyez sur la touche y pour activer la commande Yank. Maintenant que vous avez le texte dans le registre, déplacez simplement le curseur là où vous voulez coller et utilisez le p commande.

Rechercher et remplacer

On peut facilement rechercher des données dans le tampon en utilisant la commande vim search. Pour entrer une chaîne de recherche, appuyez sur la touche barre oblique (/). Le curseur se place sur la ligne de message et vim affiche une barre oblique. Saisissez le texte que vous souhaitez rechercher et appuyez sur la touche Entrée. L'éditeur vim répond par l'une des trois actions suivantes :

  • Si le mot apparaît après l'emplacement actuel du curseur, il saute au premier emplacement où le texte apparaît.
  • Si le mot n'apparaît pas après l'emplacement actuel du curseur, il revient à la fin du fichier jusqu'au premier emplacement du fichier où le texte apparaît (et l'indique par un message). Il produit un message d'erreur indiquant que le texte n'a pas été trouvé dans le fichier.
  • Pour continuer à rechercher le même mot, appuyez sur la barre oblique, puis appuyez sur la touche Entrée, ou vous pouvez utiliser la touche n pour le suivant.

La commande de substitution vous permet de remplacer (substituer) rapidement un mot par un autre dans le texte. Pour accéder à la commande de remplacement, vous devez être en mode ligne de commande. Le format de la commande de remplacement est :

:s/old/new/

L'éditeur vim saute à la première occurrence du texte old et le remplace par le texte new. Vous pouvez apporter quelques modifications à la commande de substitution pour remplacer plusieurs occurrences du texte :

:s/old/new/g        ## to replace all occurrences of old in a line
:n,ms/old/new/g     ## to replace all occurrences of old between line numbers n and m
:%s/old/new/g       ## to replace all occurrences of old in the entire file
:%s/old/new/gc      ## to replace all occurrences of old in the entire file, but prompt for each occurrence


Linux
  1. Alimentez votre éditeur de texte de terminal Linux avec ed

  2. Principes de base de Linux :Guide du débutant pour l'édition de texte avec vim

  3. Guide de l'éditeur de texte ViM 101

  4. Tutoriel vim avec des exemples de commandes

  5. Client de messagerie avec édition Vim

Comment installer l'éditeur de texte Vim sur Debian 10

Comment installer l'éditeur de texte Vim sur CentOS 8

Comment installer l'éditeur de texte VIM sur Ubuntu ?

Top 5 des meilleurs éditeurs de texte Linux

Est-il possible d'éditer un lien symbolique avec un éditeur de texte ?

Éditeur de texte/journal avec prise en charge de l'actualisation automatique