Recherche de site Web

8 trucs et astuces intéressants pour l'éditeur « Vi/Vim » pour chaque administrateur Linux - Partie 2


Dans l'article précédent de cette série, nous avons passé en revue 7 trucs et astuces à ajouter à votre ensemble de compétences vi/m. Outre les raisons évoquées précédemment, apprendre à utiliser efficacement un éditeur de texte sous Linux est une capacité essentielle pour un administrateur système ou un ingénieur et constitue une compétence requise pour réussir tout programme de certification Linux majeur (tel que LFCS, LFCE, RHCSA et RHCE). .

Cela dit, commençons.

CONSEIL N°8 : Créez des fenêtres horizontales ou verticales

Cette astuce a été partagée par Yoander, l'un de nos lecteurs, dans la première partie. Vous pouvez lancer vi/m avec plusieurs divisions horizontales ou verticales pour éditer des fichiers séparés dans la même fenêtre principale :

Lancez vi/m avec deux fenêtres horizontales, avec test1 en haut et test2 en bas

vim -o test1 test2 

Lancez vi/m avec deux fenêtres verticales, avec test3 à gauche et test4 à droite :

vim -O test3 test4 

Vous pouvez basculer le curseur d'une fenêtre à une autre avec la routine de déplacement vi/m habituelle (h : à droite, l : à gauche, j : en bas, k: en haut) :

  1. Ctrl+w k – haut
  2. Ctrl+w j – en bas
  3. Ctrl+wl – gauche
  4. Ctrl+wh – droite

CONSEIL N°9 : Changez les lettres, les mots ou les lignes entières en MAJUSCULES ou minuscules

Veuillez noter que cette astuce ne fonctionne que dans vim. Dans les exemples suivants, X est un nombre entier.

  1. Pour mettre une série de lettres en majuscules, positionnez le curseur sur la première lettre, puis tapez gUX en mode ex, et enfin appuyez sur la flèche droite du clavier.
  2. Pour modifier le nombre X de mots, placez le curseur au début du mot et tapez gUXw en mode ex.
  3. Pour mettre une ligne entière en majuscule, placez le curseur n'importe où sur la ligne et tapez gUU en mode ex.

Par exemple, pour convertir une ligne entière minuscules en majuscules, vous devez placer le curseur n'importe où sur la ligne et taper gUU :

Par exemple, pour convertir 2 mots majuscules en minuscules, vous devez placer le curseur au début du premier mot et taper gu2w :

CONSEIL N°10 : Supprimez des caractères, des mots ou jusqu'au début d'une ligne en mode INSERT

Bien que vous puissiez supprimer des caractères ou plusieurs mots à la fois en mode ex (c'est-à-dire dw pour supprimer un mot), vous pouvez également le faire en mode Insertion comme suit :

  1. Ctrl + h : supprime le caractère précédent à l'endroit où se trouve actuellement le curseur.
  2. Ctrl + w : supprime le mot précédent à l'endroit où se trouve actuellement le curseur. Pour que cela fonctionne correctement, le curseur doit être placé dans un espace vide après le mot que vous devez supprimer.
  3. Ctrl + u : supprime la ligne actuelle commençant au caractère immédiatement à gauche de l'endroit où se trouve le curseur.

CONSEIL N°11 : Déplacez ou copiez les lignes existantes vers une autre ligne du document

S'il est vrai que vous pouvez utiliser les commandes bien connues dd, yy et p en mode ex pour supprimer, copier (copier) et coller des lignes, respectivement, cela ne fonctionne que lorsque le curseur est placé à l'endroit où vous souhaitez effectuer ces opérations. . La bonne nouvelle est qu'avec les commandes copier et déplacer vous pouvez faire la même chose quel que soit l'endroit où le curseur est actuellement placé.

Pour l'exemple suivant, nous utiliserons un court poème intitulé « Forever » de Terri Nicole Tharrington. Pour commencer, nous demanderons à vim d'afficher les numéros de ligne (:set nu en mode Commande – considérez ceci comme une astuce supplémentaire). Nous utiliserons :3copy5 (également en mode Commande) pour copier la ligne 3 sous la ligne 5 :

Maintenant, annulez la dernière modification (Esc + u – une autre astuce bonus !) et tapez :1move7 pour remplacer la ligne 7 par la ligne 1. Veuillez noter comment les lignes 2 à 7 sont décalées. en haut et l'ancienne ligne 1 occupe désormais la ligne 7 :

CONSEIL N°12 : Comptez les correspondances résultant d'une recherche par motif et passez d'une occurrence à une autre

Cette astuce est basée sur la commande de substitution (astuce #7 dans la Partie 1 de cette série), à l'exception du fait qu'elle ne supprimera rien puisque le comportement de substitution est remplacé par l'option n, ce qui donne le nombre d'occurrences du modèle spécifié :

Assurez-vous de n’omettre aucune barre oblique !

:%s/pattern//gn 

Par exemple,

:%s/libero//gn

Pour passer d'une occurrence du motif à la suivante en mode ex, appuyez sur n (N minuscule). Pour passer à l'instance précédente, appuyez sur N.

CONSEIL N°13 : Ouvrez directement vi/m dans une ligne spécifiée

Par défaut, lorsque vous lancez vi/m, le curseur est initialement placé sur la dernière ligne éditée. Si vous souhaitez ouvrir le programme et placer le curseur directement sur une ligne spécifiée, vous pouvez utiliser l'astuce suivante :

vim filename +line_number

Par exemple, ouvrez forever.txt et placez le curseur sur la ligne 6 :

vim forever.txt +6

Modifions un peu cet exemple. Supposons que nous souhaitions ouvrir le fichier sur la ligne où apparaît la 3ème occurrence du motif :

vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

Examinons de plus près ce que fait la commande ci-dessus :

  1. grep -in pattern filename – affiche toutes les lignes du nom de fichier où le motif apparaît, avec le numéro de ligne au début de chaque ligne de sortie.
  2. sed -n 3p – affiche la 3ème ligne de la sortie du pipeline précédent.

Enfin,

  1. cut -d : -f1 renvoie le premier champ du pipeline précédent avec les deux points (:) comme séparateur de champ.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1

Le résultat de la commande précédente est ensuite transmis à vi/m pour ouvrir le programme à la ligne spécifiée.

CONSEIL N°14 : Personnalisation de votre environnement vi/m

Si vous utilisez vi/m pour modifier des fichiers de configuration ou pour écrire du code, vous souhaiterez pouvoir afficher les numéros de ligne lorsque vous ouvrez le programme pour la première fois et définir l'indentation automatique de sorte que lorsque vous appuyez sur la touche Entrée , le curseur sera automatiquement placé à la bonne position. De plus, vous souhaiterez peut-être personnaliser le nombre d’espaces blancs occupés par un onglet.

Bien que vous puissiez le faire à chaque fois que vous lancez vi/m, il est plus facile de définir ces options dans ~/.vimrc afin qu'elles soient automatiquement appliquées :

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

Pour d'autres options pour personnaliser votre environnement vi/m, vous pouvez vous référer à la documentation vim en ligne.

CONSEIL N°15 : Obtenez l'aide/les options générales de Vim avec vimtutor

Si à tout moment vous avez besoin de perfectionner vos compétences générales vi/m, vous pouvez lancer vimtutor à partir de la ligne de commande qui affichera une aide vi/m complète à laquelle vous pourrez vous référer aussi souvent que vous le souhaitez. sans avoir besoin de lancer un navigateur Web pour rechercher comment accomplir une certaine tâche dans vi/m.

vimtutor

Notez que vous pouvez naviguer ou rechercher le contenu de vimtutor comme si vous parcouriez un fichier normal dans vi/m.

Résumé

Dans cette série de 2 articles, j'ai partagé plusieurs trucs et astuces vi/m qui devraient vous aider à être plus efficace lorsqu'il s'agit d'éditer du texte à l'aide d'outils de ligne de commande. Je suis sûr que vous devez en avoir d’autres – alors n’hésitez pas à les partager avec le reste de la communauté en utilisant le formulaire ci-dessous. Comme toujours, les questions et commentaires sont également les bienvenus.