Question

Parlons 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 paramétrage de la longueur d'un tel bloc?

Était-ce utile?

La solution

Vous pouvez réellement faire deux choses:

  1. Laissez vim formater (i.e.change) votre texte pour qu'il comporte des lignes plus courtes, en insérant des sauts de ligne
  2. Laissez les lignes telles qu'elles sont, mais affichez-les enveloppées

Lequel voulez-vous?

L'option 1 serait réalisée en définissant textwidth (par exemple, : set textwidth = 30 (d'après la réponse de Swaarop)). Ensuite, vous pouvez reformater votre texte en le mettant en surbrillance (en mode visuel) et en tapant gq . ( textwidth peut être abrégé en tw , ainsi : set tw = 30 .)

L'option 2 peut être basculée en exécutant : set wrap / : set nowrap . Cela encapsulera les lignes trop longues pour la fenêtre.

Les deux sont indépendants.

Autres conseils

Une fois que vous avez défini "largeur de texte", vous pouvez sélectionner du texte en mode visuel et appuyer sur gq pour le bien emballer (vous pouvez également utiliser Q sur des configurations plus anciennes / anciennes).

Quelques conseils utiles:

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

Utiliser fold (1) est une possibilité:

:%!fold -w5 

Résultat:

aaaaa
aaaaa
aaa 
bbbbb
bbbbb
bbb 
ccccc
ccccc
ccc
:set textwidth=30

Si vous souhaitez séparer le texte sans espaces d'une certaine longueur, il n'est pas nécessaire d'utiliser un fold externe ni d'écrire votre propre formatexpr .

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

coupera toutes les lignes à 80 caractères.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top