Pour éditer plusieurs lignes, en leur ajoutant, par exemple, du texte à chaque début et fin de ligne, il existe une méthode simple mais pas toujours connue du vimeur qui sommeille en chacun de nous.
Exemple de lignes à éditer
"https://une_url.com",
"https://une_url.com",
"https://une_url.com",
Résultat souhaité :
{src="https://une_url.com"},
{src="https://une_url.com"},
{src="https://une_url.com"},
Placez votre curseur sur le début de la première ligne. Puis sélectionnez toutes les lignes avec le mode visual <Shift> + v puis 2j pour descendre de 2 lignes. Et enfin : pour ouvrir la commande une fois les 3 lignes sélectionnées.
Puis taper la commande suivante :
:'<,'>norm! i{src=<Esc>f,i}
⚠️ La touche <Esc> peut être faite dans ce contexte via <Ctrl> + v puis <Esc>.
Explication de la commande
norm(abréviation denormal) indique que pour chaque ligne sélectionnée nous passons en mode normal!force l’exécution de la commande sans appliquer vos mappings ou plugins (dans mon cas autoclose me rajouterait une fermeture}non souhaitée après lesrc=)iindique qu’on passe en mode insertion et qu’à partir de maintenant tous les caractères seront insérés sur chaque ligne (dans notre cassrc=)<Esc>pour s’échapper du mode insertionf,déplace le curseur jusqu’à la première virguleipour repasser en mode insertion et écrire l’accolade fermante
Quelques cas pratiques supplémentaires
Commenter une sélection
:'<,'>norm! I//
Mettre en majuscule le premier caractère de chaque ligne
:'<,'>norm! gUl
Exécuter une macro sur chaque ligne
:'<,'>norm! @a
Une technique magique
Comme vous l’aurez compris cette “technique” permet d’appliquer n’importe quelle commande de mode normal à plusieurs lignes, sans passer par des macros ou le mode bloc.
Bref, ça peut vous faire gagner pas mal de temps dans certains cas.