2012-01-11 10 views
8

Voglio riformattare il mio file in modo che la larghezza massima della linea sia 79. Ho fatto :set tw=79 e gggqG ei risultati non erano quelli che mi aspettavo. Quando una linea è inferiore a 79 col, i caratteri della riga sottostante si spostano verso l'alto e le linee con 79 punti non si suddividono in due righe.vim text width reformat

modifica: Beh, ero semi-sbaglio in quanto esso interrompe le linee oltre il 79 tranne che nella linea con gli asterischi.

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

Inoltre si muove ancora caratteri quando la linea ha < 79.

+0

Funziona per me seguendo le tue istruzioni, ma controlla che le linee siano fragili. Ad esempio, gli URL manterranno il loro formato originale dopo tale larghezza. – Birei

risposta

7

Una possibile soluzione, anche se non la migliore.

Undefine formatexpr e lasciare il programma esterno fold per formattare il testo a una larghezza di 79 caratteri.

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

E ora:

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

E per ultimo rimuovere quei ritorni a capo (^ M):

:%s/\r//g 

Nella mia prova è cambiato alcuni caratteri accentati e alcune altre linee erano alterati, ma provalo tu stesso Altrimenti è possibile scrivere la propria funzione di formattazione e utilizzarla con l'opzione formatexpr.

+0

Che funzionava anche se non perfetto. Le parole sono state tagliate a metà ma non è un grosso problema. – deadghost

1

riga vuota Mettere tra i diversi paragrafi. Quindi fai il reformat.

+0

Non invia caratteri su una riga quando aggiungo linee vuote tra ogni coppia di linee, ma in realtà non divide le mie linee più lunghe in linee 79 colonne. – deadghost