Question Comment puis-je corriger l'indentation d'un fichier entier dans Vi?


Dans Vim, quelle est la commande pour corriger l'indentation de toutes les lignes?

Souvent, je vais copier et coller du code dans un terminal distant et avoir tout fait foirer. Je veux résoudre ce problème d'un seul coup.


570
2018-02-03 05:15


origine


Réponses:


=, la commande indent peut prendre des mouvements. Alors, gg pour obtenir le début du fichier, = indenter, G à la fin du fichier, gg=G.


1090
2018-02-03 05:19



Avant de coller dans le terminal, essayez :set paste (et alors :set nopaste après vous avez fini). Cela désactivera les fonctions de retrait automatique, de retour à la ligne, etc. qui gâchent votre pâte.

edit: Aussi, je dois souligner qu'un résultat bien meilleur que = indenting peut généralement être obtenu en utilisant un programme externe. Par exemple, je cours :%!perltidy tout le temps. astyle, cindent, etc. peuvent également être utilisés. Et, bien sûr, vous pouvez les mapper à un coup de clé - et mapper les différents à la même frappe en fonction du type de fichier


115
2018-02-03 05:47



Si vous voulez réindenter le bloc dans lequel vous êtes sans avoir à taper d'accords, vous pouvez faire:

[[=]]

27
2018-03-02 03:44



Le maître de toutes les commandes est

gg=G

Cela indente le fichier entier!

Et voici quelques-unes des commandes simples et élégantes utilisées pour indenter les lignes rapidement dans Vim ou gVim.

Pour indenter toutes les lignes en dessous de la ligne actuelle

=G

Pour mettre en retrait la ligne actuelle

==

Pour indenter n lignes en dessous de la ligne actuelle

n==

Par exemple, indenter 4 lignes en dessous de la ligne actuelle

4==

Pour mettre en retrait un bloc de code, accédez à l'une des accolades et utilisez la commande

=%

19
2017-08-31 10:23



Vous pouvez utiliser l'application / utilitaire tidy pour mettre en retrait les fichiers HTML et XML et cela fonctionne plutôt bien en indentant ces fichiers.

Prétraiter un fichier XML

:!tidy -mi -xml %

Prétendre un fichier HTML

:!tidy -mi -html %

17
2017-07-06 08:48



appuyez sur Echap puis tapez rapidement les combinaisons suivantes:

gg=G

13
2017-12-02 13:22



1G=G. Cela devrait indenter toutes les lignes dans le fichier. 1G vous prend la première ligne, = va commencer l'auto-indentation et la finale G vous prendra la dernière ligne dans le fichier.


11
2018-02-03 21:17



Dans Vim, utilisez :insert. Cela gardera tout votre formatage et ne fera pas d'autoindenting. Pour plus d'informations help :insert.


7
2018-02-03 05:44