110 votes

Comment puis-je renvoyer le texte d'une certaine longueur dans Vim?

Nous allons parler de mesures relatives. Mon Vim ressemble:

aaaaaaaaaaaaa 
bbbbbbbbbbbbb 
ccccccccccccc 
etc

Je voudrais qu'il soit plus petit:

aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc

Comment puis-je l'obtenir? Et comment puis-je gérer le réglage de la longueur d'un bloc?

199voto

sleske Points 29978

Vous pouvez faire deux choses:

  1. Laissez vim format (j'.e.modifier) votre texte pour avoir des lignes plus courtes, par l'insertion, mais les sauts de ligne
  2. Laisser lignes qu'ils sont, mais d'afficher leur enveloppé

Qui voulez-vous?

  1. qui serait obtenu par la mise en textwidth (par exemple, :set textwidth=30 (à partir de Swaarop réponse)). Vous pouvez le reformater votre texte en le marquant (mode visuel) et en tapant gq.

  2. peut être activé ou désactivé par ":set wrap" / ":set nowrap"

Les deux sont indépendants.

70voto

Vlad Dogaru Points 690

Une fois que vous 'textwidth', vous pouvez sélectionner du texte avec le mode visuel et de la presse gq pour l'envelopper bien (vous pouvez aussi utiliser Q sur quelques anciens/legacy configurations).

Quelques conseils utiles:

gqgq (wrap the current line)
gq} (wrap this 'paragraph', i.e. until the next blank line)
:h gq

25voto

fgm Points 5930

À l'aide de pli(1) est une possibilité:

:%!fold -w5

Résultat:

aaaaa
aaaaa
aaa 
bbbbb
bbbbb
bbb 
ccccc
ccccc
ccc

14voto

Swaroop C H Points 7518
:set textwidth=30

8voto

kthy Points 68

Si vous avez un texte sans espaces que vous souhaitez pause à une certaine longueur, il n'est pas nécessaire d'utiliser des fold ni écrire votre propre formatexpr.

:%s/\(.\{80\}\)/\1\r/g

va briser toutes les lignes à 80 caractères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X