Changer la profondeur d'indentation dans vi
Question
Quel est le moyen le plus simple d'augmenter ou de diminuer l'indentation d'un gros bloc de code dans vi ?
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