2012-01-11 2 views
8

Je veux reformater mon fichier afin que la largeur de ligne maximale est de 79. J'ai fait :set tw=79 et gggqG et les résultats n'étaient pas ce que je m'attendais. Quand une ligne est inférieure à 79 col, les caractères de la ligne en-dessous se déplacent vers le haut et les lignes de plus de 79 col ne se séparent pas en deux lignes.vim texte largeur reformat

edit: Eh bien, je me suis trompé en ce sens qu'il casse les lignes sur 79 sauf dans la ligne avec des astérisques.

--CONVENTIONS************************************************************************************** 

En outre, il se déplace encore des caractères lorsque la ligne a < 79.

+0

Cela fonctionne pour moi en suivant vos instructions, mais vérifiez que les lignes sont cassables. Par exemple, les urls conserveront leur format d'origine après cette largeur. – Birei

Répondre

7

Une solution possible, mais pas la meilleure.

Indiquez formatexpr et laissez le programme externe fold mettre en forme votre texte à 79 caractères.

:set formatexpr= 
:set formatprg=fold\ -w\ 79 

Et maintenant:

gg    # Go to beginning of file. 
gq    # Format until... 
G    # End of file. 

Et enfin supprimer ces retours chariot (^ M):

:%s/\r//g 

Dans mon test, il a changé quelques caractères accentués et quelques autres lignes ont été mutilée, mais essayez-le vous-même. Sinon, vous pouvez écrire votre propre fonction de format et l'utiliser avec l'option formatexpr.

+0

Cela a fonctionné mais pas parfait. Les mots ont été coupés en deux, mais ce n'est pas une grosse affaire. – deadghost

1

Mettez ligne vide entre les différents paragraphes. Ensuite, faites le reformatage.

+0

Il n'envoie pas de caractères sur une ligne lorsque j'ajoute des lignes vides entre chaque paire de lignes, mais il ne divise pas réellement mes lignes plus longues en 79 lignes de col. – deadghost

Questions connexes