Después de leer help textwith
y help fo-table
, esperaba eso cuando configuro
set textwidth=20 " for demonstration
set formatoptions=tcq
luego insertar texto siempre ocasionaría que una línea se ajuste, pero ese no es el caso. El ajuste solo ocurre en (o antes) mi cursor. Y si pego, el envoltorio no ocurre en absoluto.
Ejemplo (Vim 7.4):
12345678901234567890
This is a long line
La línea se ajustará automáticamente si presiono A
y empiezo a escribir.
Pero si presiono 02wi
y escribo "still", no se ajusta:
12345678901234567890
This is still a long line
Tengo que escribir otros 7 caracteres antes de que se ajuste, y luego el problema continúa en la siguiente línea:
12345678901234567890
This is still more <-- it wraps here
typing and again a long line
Pegar tampoco desencadena una envoltura:
12345678901234567890
This is a long line This text is pasted and not wrapped
Creo que lo que quiero es set fo+=a
pero eso se aplica a nivel de párrafo, mientras que no quiero que el formateo automático de una línea se extienda a otras líneas.
¿O me falta una opción?
Para ser claros, después del lanzamiento vim -u NONE
, esto es lo que escribo (menos comentarios):
:set textwidth=20<CR>
:set formatoptions=tcq<CR>
iThis is a long line<ESC>
02wistill <ESC> " no wrap happens, but I'd like it to
u
:let @r = "This text is pasted and not wrapped"<CR>
$"rp " no wrap happens, but I'd like it to
fuente
vim -u NONE
Inicié Vim con para evitar cargar un archivo vimrc. ¿Esto te soluciona el problema? ¿Qué versión de Vim estás usando?paste
establece, accidentalmente? Prueba:set paste?
paste
no está configurado. Cuandopaste
se establece, no ocurre ningún ajuste.Respuestas:
Encontré una solución parcial, usando
formatoptions=tcqaw
. Básicamente, sigue ajustando automáticamente los párrafos, pero un párrafo termina cuando la línea no tiene espacios en blanco al final, lo cual es adecuado para muchos casos.Usando su ejemplo (con una ligera modificación, sin deshacer y usando "
<SPACE>
Esto ...") obtengo este resultado:fuente