Parlons de mesures relatives. Mon Vim ressemble à:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
J'aimerais qu'il soit plus petit:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
Comment puis-je l'avoir? Et comment gérer la définition de la longueur d'un tel bloc?
Vous pouvez en fait faire deux choses:
Lequel veux-tu?
L'option 1 serait obtenue en définissant textwidth
(par exemple :set textwidth=30
(d'après la réponse de Swaarop)). Vous pouvez ensuite reformater votre texte en le surlignant (en mode visuel) et en tapant gq
. (textwidth
peut être abrégé en tw
, donc :set tw=30
.)
L'option 2 peut être basculée en exécutant :set wrap
/:set nowrap
. Cela bouclera les lignes trop longues pour la fenêtre.
Les deux sont indépendants.
Une fois que vous avez défini la "largeur de texte", vous pouvez sélectionner du texte avec le mode visuel et appuyer sur gq pour bien l'encapsuler (vous pouvez également utiliser Q sur certaines configurations plus anciennes/héritées).
Quelques conseils utiles:
gqq (wrap the current line)
gq} (wrap this 'paragraph', i.e. until the next blank line)
:h gq
L'utilisation de fold (1) est une possibilité:
:%!fold -w5
Résultat:
aaaaa
aaaaa
aaa
bbbbb
bbbbb
bbb
ccccc
ccccc
ccc
:set textwidth=30
Si vous avez du texte sans espaces que vous souhaitez couper à une certaine longueur, il n'est ni nécessaire d'utiliser fold
externe ni d'écrire votre propre formatexpr
.
:%s/\(.\{80\}\)/\1\r/g
coupera toutes les lignes à 80 caractères.