Bienvenue sur ce wiki - vim cheat home page

Essayez alors de supprimer des mots via dw, de et db.

Idem, pour des lignes entières : d$, d0, ou dd

Caractères

Exemple :

5,10d va tout supprimer entre les lignes 5 et 10. À retenir qu'il existe certains caractères spéciaux pour définir le début et la fin :

. → la ligne du curseur $ → la dernière ligne % → toutes les lignes Si vous voulez annuler une action, utilisez u(undo).

D'autre macros/actions en vrac

Mode visuel

Le mode visuel est le seul que nous n'avons pas encore abordé. Il permet de sélectionner du texte et d'y appliquer une macro.

En mode normal, appuyez sur v pour entrer en mode visuel. Vous pouvez alors vous déplacer avec les touches directionnelles pour sélectionner du texte.

Une fois le texte sélectionné, vous pouvez appliquer une macro comme d pour le couper.

👀 Car oui, je vous ai menti ! d ne permet pas de supprimer mais de couper. La différence est que le texte coupé est stocké dans un presse-papier (clipboard).

Comme vu dans la précédente animation, il est possible de continuer à utiliser les raccourcis de déplacement en mode visuel.

Vous pouvez aussi directement sélectionner la ligne entière avec V.

Pour copier une sélection, utilisez y (yank).

Recherche

Vim + sed = <3

Sed est un outil en ligne de commande permettant de modifier du texte. Il est très utilisé dans les scripts de déploiement pour modifier des fichiers de configuration. Celui-ci est intégré nativement à Vim avec la commande s.

Comme pour :d, :s est une commande qui prend en paramètre un début et une fin. Le début et la fin peuvent être des lignes ou des caractères spéciaux comme . ou %.

Simple remplacement de texte : Cigale par Bestiole avec :1,2s/Cigale/Bestiole/

Commenter plusieurs lignes via sed

Gestion des Buffers

Un buffer est un fichier chargé en mémoire. Un fichier ouvert dans Vim est alors un buffer (qu'il soit affiché à l'écran… ou non).

Lorsque nous ouvrons un fichier, celui-ci est chargé dans un buffer. Si nous ouvrons un autre fichier, celui-ci sera chargé dans un second buffer. Nous pouvons alors naviguer entre les fichiers ouverts assez facilement.

Voici quelques commandes utiles pour gérer les buffers :

Onglets Vim

Ce n'est pas très utilisé mais Vim permet aussi de gérer des onglets afin de travailler sur plusieurs fichiers en même temps. La syntaxe pour ouvrir directement de nombreux fichiers en une seule commande est alors la suivante : vim -p file1 file2 file3.

Voici les principales choses à retenir:

Multifenêtrage

Maintenant, on s'attaque à l'affichage de plusieurs buffers en même temps avec le multifenêtrage.

Les registres

Lorsque nous manipulons un fichier volumineux, nous allons régulièrement faire des d(couper) et des p(coller).

Certaines suppressions avec d n'auront pour objectif que de supprimer un bloc de texte, sans volonté de l'enregistrer dans notre presse-papier. Pourtant Vim va l'enregistrer dans le presse papier et nous allons perdre le contenu qui aurait dû être collé par p (ou P) avant la suppression.

À ce problème, nous avons la solution d'utiliser les registres.

Lorsque vous supprimez un bloc, Vim va automatiquement l'ajouter à un registre qui peut retenir jusqu'à 9 blocs.

D'autres éléments sont également déjà présents dans le registre en readonly :

Sauvegarder un élément dans le registre À présent, vous pouvez également ajouter un élément au registre afin qu'il ne soit pas supprimé. Si les clés 0-9 et %:/*+# sont en lecture seule, il vous reste néanmoins toutes les clés alphabétiques.

Chaque commande concernant le registre commence par " (doubles-quotes). Pour coller la clé 9, la commande est : "9p (p pour coller)

Pour enregistrer une clé dans le registre : "ayy (yy pour copier la ligne)

Évidemment : p et yy ne sont pas les seules manières de coller/copier le contenu d'une clé. Les commandes valables dans les précédents cas d'usages sont toujours valides et utilisables dans ce contexte.