Comment appliquer une commande à toutes les lignes?


19

Si je veux mettre en retrait toutes les lignes d'un document, je peux taper >Gpour l'appliquer à la ligne actuelle et en dessous, suivi et >ggpour l'appliquer aux lignes ci-dessus.

Existe-t-il une combinaison que je peux utiliser pour simplement appliquer >à toutes les lignes à la fois?

Réponses:


19

Vous recherchez la :>commande et une plage de 1,$( %pour faire court) pour l'ensemble du fichier.

:%>

Pour plus d'aide, voir:

:h :>
:h :range

5
En raison du titre de cette question ("appliquer une commande à toutes les lignes"), je pense qu'il vaut la peine de noter que l'exemple de la question mentionne l'opérateur en mode normal >, tandis que cette réponse utilise la commande en mode commande :>. Ce ne sont pas à proprement parler la même chose. Qu'ils portent le même nom devrait être considéré comme une coïncidence; ne supposez pas que vous pouvez échanger des opérateurs et des commandes en général. Par exemple, l' gUopérateur convertit le texte en majuscules, mais :%gUn'est pas une commande valide pour l'appliquer à l'ensemble du tampon.
tommcdo

7

Une façon de mettre en retrait toutes les lignes d'un document:

:%>

3

Sans quitter le mode normal, vous pouvez simplement faire:

gg>G

2
l'inconvénient ici est que vous perdez votre position dans le fichier
TankorSmash

Toutes les autres réponses partagent cet inconvénient et le PO n'a pas mentionné "respecter la position du curseur" comme exigence.
romainl

1
<co> peut être utilisé pour revenir à votre position précédente La solution de @ romainl vous oblige à revenir en arrière deux fois tandis que l'autre ne nécessite que de revenir une fois
Brett Y

Vous pouvez certainement apprécier la valeur de garder votre place, et comment une réponse qui garderait cette position serait précieuse.
TankorSmash

1
C'est pourquoi il n'est pas sous-voté. C'est simplement une note disant qu'il y a une meilleure option quelque part et qu'ils devraient continuer à chercher. Par exemple, sur un site de programmation SE, un code bâclé qui résout le problème résout le problème, mais vous vous attendez toujours à trouver une autre solution qui résout le problème et semble bonne.
TankorSmash

3

Une autre option qui n'a pas encore été mentionnée:

:g/^/>

Cela exécutera la commande >sur toutes les lignes qui correspondent au modèle ^.

L'inconvénient est que cela écrasera votre historique de recherche.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.