Question

Quel est le moyen le plus simple d'augmenter ou de diminuer l'indentation d'un gros bloc de code dans vi ?

Était-ce utile?

La solution

Dans vim (vous n'êtes pas sûr que cela s'applique également à vous), vous utilisez >> pour mettre en retrait une ligne. Comme avec presque toutes les commandes de vim, entrez un nombre avant que la commande à exécuter ne soit répétée. Donc, pour indenter les 50 lignes suivantes, tapez 50>>.

Autres conseils

Identification automatique :

Pour un bloc { } j'utilise la commande : =iB (avec le curseur à l'intérieur du bloc pour identifier)

Pour réidentifier un fichier complet, j'utilise gg=G

Maintenant pour augmenter ou diminuer l'identification sur un bloc, il faut le sélectionner (j'utilise viB commande) et ensuite vous faites >> ou << et si vous souhaitez répéter l'identification, utilisez simplement le point .

Pensez également à paramétrer vos paramètres d'identification avec

:set shiftwidth=NUMOFSPACES

et

:set softtabstop=NUMOFSPACES

Marquez-le, puis utilisez > et <.

Si votre code est entre accolades, placez votre curseur sur l'une d'entre elles et utilisez >% ou <%.

Une autre commande utile est, une fois que vous indenter en utilisant '<' ou '>', utilisez '.' répéter la commande jusqu'à ce qu'elle soit alignée comme vous le souhaitez.

Vous pouvez également consulter http://vim.wikia.com/ pour des conseils à ce sujet. sorte de chose.

Par défaut, en mode insertion, vous pouvez utiliser Ctrl-T et Ctrl-D pour dé / intentionner la ligne en cours.

appuyez sur v pour passer en mode visuel et utilisez la flèche vers le bas pour sélectionner l'ensemble du bloc, puis 12 > >

utilise deux équerres (& "; < < &" ou & "; > > &"; ) pour une ligne à gauche ou à droite en caractères shiftwidth. Vous pouvez le faire avec les indicateurs de plage de lignes communs - & ";: M, n &" ;, accolade / parenthèse / parenthèse, etc.

Ou & "; < &"; puis un indicateur de mouvement, puis un autre & "; < &";.

.

Ou " < 12 < " décale les 12 lignes suivantes à gauche.

: 50,100 >

Les lignes 50 à 100 seront-elles indentées une fois

: 50,100 > >

Les lignes 50 à 100 seront-elles indentées deux fois

fonctionne également avec < et < < etc.

Recherchez d’abord les numéros de ligne des lignes de début et de fin à l’aide de la commande Control-g. Laissez-les être m et n . Supposons que nous souhaitions indenter les numéros de ligne m à n de 5 espaces. Ensuite, la commande suivante fait le travail,

:m,ns/^/     /g 

Pour réduire l'indentation, convertissez d'abord tous les onglets en (disons 4) espaces.

:m,ns/\t/    /g

Supposons que nous souhaitions supprimer 3 espaces des lignes numérotées m à n .

:m,ns/^   //g
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top