Modifier l’indentation à 2 espaces à 4 espaces dans vim

J’ai certains codes copiés d’Internet qui ont une indentation à 2 espaces et je veux les changer en 4 espaces. Je me demande s’il existe une routine Vim courte pour accomplir la tâche sans avoir à écrire un script vim? Voici comment je le fais actuellement avec un fichier HTML:

  • Enregistrer une macro
  • Aller au début d’une ligne
  • Visual sélectionne tous les espaces jusqu’à la première occurrence de “<"
  • Yank et coller tous les espaces blancs (essentiellement pour les doubler)
  • Relire la macro jusqu’à la fin du fichier

En bref qa0vt<ypjq

Pièges:

La macro échoue pour une ligne vide ou une ligne qui ne commence pas par “<". Et je ne sais pas comment étendre cette solution aux fichiers non HTML.

Une manière générale de modifier le retrait est de changer l’onglet:

Collez votre fichier dans un tampon vide, puis:

 :set ts=2 sts=2 noet :retab! 

Cela change tous les 2 espaces à un caractère TAB, puis:

 :set ts=4 sts=4 et :retab 

Cela change chaque tabulation à 4 espaces.

L’avantage de cette méthode est que vous pouvez également l’utiliser pour convertir de 4 à 2 espaces par exemple.

Cela peut être possible avec :set shiftwidth=4 et gg=G