En VIM, ¿cómo divido una línea muy larga en varias líneas?

Resuelto Jordan Parmer asked hace 15 años • 12 respuestas

Digamos que tengo una cola muy larga en el editor VIM (digamos alrededor de 300+ caracteres). ¿Cómo dividiría eso en varias líneas para que los límites de las palabras se rompan aproximadamente en 80 caracteres?

Ejemplo:

This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line

a

This is a really long line 
This is a really long line
This is a really long line
This is a really long line
This is a really long line
This is a ...
Jordan Parmer avatar Aug 13 '09 21:08 Jordan Parmer
Aceptado

Vim hace esto muy fácilmente (rompe líneas en los límites de las palabras).

gq{motion} % format the line that {motion} moves over
{Visual}gq % format the visually selected area
gqq        % format the current line
...

Le sugiero que consulte :help gqy :help gw.

Además, configurar el ancho de texto ( tw) le dará un salto de línea automático cuando se exceda al escribir. También se usa gq, aunque si está deshabilitado gqse interrumpe el tamaño de la ventana o 79, dependiendo de cuál aparezca primero.

:set tw=80

Al configurar las opciones de formato para incluir el ancho del texto, vim se dividirá automáticamente en la configuración tw.

:set fo+=t
he_the_great avatar Aug 13 '2009 14:08 he_the_great

Primero configura tu vim para que entienda que quieres 80 caracteres:

:set tw=80

luego, resalta la línea:

V

y haz que vim lo formatee:

gq
 avatar Aug 13 '2009 14:08

Para líneas continuas de texto, resalte el área usando v en modo normal, luego presione

:s/\v(.{80})/\1\r/g

Esto agregará una nueva línea al final de cada 80 caracteres.

:s/       replaces within the current select
\v        uses regular expressions
(.{80})   selects 80 characters & placed them into group one
\1\r      replaces group one with group one and a newline
smokedice avatar May 12 '2017 14:05 smokedice

Esto no está realmente relacionado con VIM, pero puedes usar el programa fmt como en

$ fmt myfile
Wernsey avatar Aug 13 '2009 14:08 Wernsey