Dans l’article précédent de cette série, nous avons examiné 7 conseils et astuces à ajouter à votre ensemble de compétences vi/m, en plus des raisons données précédemment, apprendre à utiliser efficacement un éditeur de texte sous Linux est une compétence essentielle pour un administrateur système ou un ingénieur et est une compétence requise pour réussir tout programme de certification majeur en Linux (comme LFCS, LFCE, RHCSA et RHCE).
Cela dit, commençons.
8. Créer des fenêtres Vim horizontales ou verticales
Ce conseil a été partagé par Yoander, l’un de nos lecteurs, dans Partie 1. Vous pouvez lancer vi/m avec plusieurs divisions horizontales ou verticales pour éditer des fichiers séparés à l’intérieur de 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 déplacer le curseur d’une fenêtre à l’autre avec la routine de mouvement habituelle de vi/m (h:
droite, l:
gauche, j:
bas, k:
haut):
- Ctrl+w k – haut
- Ctrl+w j – bas
- Ctrl+w l – gauche
- Ctrl+w h – droite
9. Changer en MAJUSCULES ou en minuscules dans Vim
Veuillez noter que cette astuce ne fonctionne que dans vim. Dans les exemples suivants, X est un nombre entier.
- Pour transformer une série de lettres en MAJUSCULES, placez le curseur sur la première lettre, tapez ensuite gUX en mode ex, et enfin appuyez sur la flèche droite du clavier.
- Pour transformer X nombre de mots, placez le curseur au début du mot et tapez gUXw en mode ex.
- Pour transformer une ligne entière en MAJUSCULES, 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 devriez placer le curseur n’importe où sur la ligne et taper gUU:

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

10. Supprimer du texte en mode insertion Vim
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:
- Ctrl + h: supprime le caractère précédent à l’emplacement où se trouve le curseur actuellement.
- Ctrl + w: supprime le mot précédent à l’emplacement où se trouve le curseur. Pour que cela fonctionne correctement, le curseur doit être placé dans un espace vide après le mot que vous devez supprimer.
- Ctrl + u: supprime la ligne actuelle à partir du caractère immédiatement à gauche de l’emplacement où se trouve le curseur.
11. Déplacer ou copier des lignes existantes dans Vim
Bien qu’il soit vrai que vous pouvez utiliser les commandes bien connues dd
, yy
et p
en mode ex pour supprimer, yanker (copier) et coller des lignes, respectivement, cela ne fonctionne que si le curseur est placé là où vous souhaitez effectuer ces opérations.
La bonne nouvelle est qu’avec les commandes copier et déplacer, vous pouvez faire de même indépendamment de l’emplacement actuel du curseur.
Pour l’exemple suivant, nous utiliserons un court poème intitulé « Pour toujours » de Terri Nicole Tharrington. Pour commencer, nous afficherons les numéros de ligne dans Vim (:set nu en mode Commande – considérez ceci comme un conseil supplémentaire). Nous utiliserons :3copy5 (également en mode Commande) pour copier la ligne 3 en dessous de la ligne 5:

Maintenant, annulez la dernière modification (Esc + u – un autre conseil bonus!) et tapez :1move7 pour remplacer la ligne 7 par la ligne 1. Notez comment les lignes 2 à 7 sont décalées vers le haut et que l’ancienne ligne 1 occupe maintenant la ligne 7:

12. Naviguer et compter les correspondances de motif dans Vim
Ce conseil est basé sur la commande de substitution (conseil #7 dans Partie 1 de cette série), à l’exception qu’il ne supprimera rien puisque le comportement de substitution est remplacé par l’option n, ce qui entraîne le comptage des occurrences du modèle spécifié:
Assurez-vous de ne pas omettre aucune des barres obliques avant !
:%s/pattern//gn
Par exemple,
:%s/libero//gn

Pour passer d’une occurrence du motif à la suivante en mode ex, appuyez sur n (minuscule N). Pour passer à l’instance précédente, appuyez sur N.
13. Ouvrir un fichier dans Vim à une ligne spécifiée
Par défaut, lorsque vous lancez vi/m, le curseur est initialement placé dans la dernière ligne qui a été éditée. Si vous souhaitez ouvrir le programme et placer directement le curseur sur une ligne spécifiée, vous pouvez utiliser le truc suivant:
# vim filename +line_number
Par exemple, ouvrez forever.txt et placez le curseur en ligne 6:
# vim forever.txt +6
Voyons comment modifier cet exemple un peu. Supposons que nous voulions ouvrir le fichier à 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 :
- grep -in pattern filename – affiche toutes les lignes du fichier où le motif apparaît, avec le numéro de ligne au début de chaque ligne de sortie.
- sed -n 3p – affiche la 3ème ligne de la sortie du pipeline précédent.
Enfin,
- cut -d: -f1 renvoie le premier champ du pipeline précédent avec le colon
(:)
comme séparateur de champs.
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.
14. Personnalisation de l’environnement Vim
Si vous utilisez vi/m pour modifier des fichiers de configuration ou pour écrire du code, vous voudrez peut-être pouvoir afficher le numéro de ligne
- Vim pour les administrateurs Linux : 8 conseils et astuces puissants (Partie 2)
lorsque vous ouvrez le programme pour la première fois et définir une indentation automatique de sorte que lorsque vous appuyez sur la touche Enter, le curseur soit placé automatiquement à la position appropriée. De plus, vous voudrez peut-être personnaliser le nombre d’espaces qu’occupe une tabulation.
Bien que vous puissiez le faire chaque fois que vous lancez vi/m, il est plus facile de définir ces options dans ~/.vimrc
pour qu’elles soient automatiquement appliquées :
set number set autoindent set shiftwidth=4 set softtabstop=4 set expandtab
Pour plus d’options pour personnaliser votre environnement vi/m, vous pouvez vous référer à la documentation en ligne sur vim.
15. Obtenir de l’aide générale avec Vimtutor
Si vous avez besoin de rafraîchir vos compétences générales en vi/m à tout moment, vous pouvez lancer vimtutor depuis la ligne de commande, ce qui affichera une aide complète en vi/m que vous pouvez consulter autant de fois que vous le souhaitez, sans avoir besoin de démarrer un navigateur web pour rechercher comment accomplir une tâche spécifique en vi/m.
vimtutor

Notez que vous pouvez naviguer ou rechercher le contenu de Vimtutor comme si vous naviguiez dans un fichier régulier en vi/m.
Résumé
Dans cette série de 2 articles, j’ai partagé plusieurs astuces et trucs en vi/m qui devraient vous aider à être plus efficace lorsqu’il s’agit d’éditer du texte à l’aide d’outils en ligne de commande.
I’m sure you must have other ones – so feel free to share them with the rest of the community in the comment form below. As always, questions and comments are also welcome.
Source:
https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/