2012-01-11 17 views
8

Quiero reformatear mi archivo para que el ancho de línea máximo sea 79. Hice :set tw=79 y gggqG y los resultados no fueron los que esperaba. Cuando una línea tiene menos de 79 col, los caracteres de la línea inferior se mueven hacia arriba y las líneas con más de 79 col no se dividen en dos líneas.vim text width reformat

editar: Bueno, estaba semi-confundido en que SÍ líneas de más de 79, excepto en la línea con asteriscos.

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

Además todavía mueve los caracteres cuando la línea tiene < 79.

+0

Me funciona siguiendo sus instrucciones, pero compruebe que las líneas sean frágiles. Por ejemplo, las URL mantendrán su formato original después de ese ancho. – Birei

Respuesta

7

Una posible solución, aunque no la mejor.

Define formatexpr y deja que el programa externo fold formatee tu texto a 79 caracteres de ancho.

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

Y ahora:

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

Y por último eliminar esos retornos de carro (^ M):

:%s/\r//g 

En mi prueba se cambiaron algunos caracteres acentuados y algunas otras líneas estaban destrozados, pero inténtalo tú mismo. De lo contrario, puede escribir su propia función de formato y usarla con la opción formatexpr.

+0

Eso funcionó aunque no perfecto. Las palabras se cortaron por la mitad, pero eso no es gran cosa. – deadghost

1

Ponga línea vacía entre los diferentes párrafos. Luego haz el reformateo.

+0

No envía caracteres por una línea cuando agrego líneas vacías entre cada par de líneas, sin embargo, en realidad no divide mis líneas más largas en 79 líneas de columnas. – deadghost

Cuestiones relacionadas