Quiero usar la capacidad de ajuste suave de Vim ( :set wrap) para ajustar un código de 80 caracteres, independientemente del ancho real de mi ventana.
Todavía no he podido encontrar una manera de hacerlo: toda la envoltura suave parece estar vinculada al ancho de la ventana
textwidthywrapmarginson ambos para envoltura rígida (insertan caracteres de nueva línea en el archivo)- división vertical en múltiples ventanas y uso
:vertical resize 80(posiblemente:set breakat=para permitir saltos en cualquier carácter) en una de ellas (aunque sea un poco hack), pero se rompe cuando se usa:set numberya que los números de línea ocupan un número variable de columnas (dependiendo en la longitud del archivo) y estos son parte de los 80.
¿Hay alguna manera de hacer esto en vim? No parece prometedor, según otras fuentes .
En este momento, mi aproximación es solo tenerla /^.\{80}\zs.\+como mi búsqueda predeterminada, por lo que al menos está resaltada. Pensé en agregarle un :syntaxelemento, pero eso se rompió cuando se superpuso a otros elementos de sintaxis, así que dejé esa idea.

Respuestas:
Tú podrías
:set numberwidth=6y:set columns=86(o con el mouse) al tamaño adecuado.Si edita un archivo con un millón de líneas, puede tener problemas, pero es poco probable. También está desperdiciando 6 columnas de bienes raíces de pantalla de esta manera. Entonces todavía hay todo tipo de problemas.
Puede resaltar más allá de la columna 80 utilizando
:matchcomo dice aquí y aquí .Más allá de eso, no veo ninguna manera de hacer esto. Sin embargo, parece que sería una buena característica.
fuente
Prueba esto:
Puede eliminar el
if (&columns > 80) |si siempre quiere 80 columnas.fuente
No tengo una solución para el ajuste suave, pero en cuanto a marcar una columna, a partir de Vim 7.3 (lanzado el 15-08-2010)
:set colorcolumn=80resaltará la columna 80. El color dependerá de su archivo de sintaxis.Ver Vim 80 Diseño de columna preocupaciones ,
:h colorcolumn.fuente
:let w:eighty_column_match = matchadd('ColorColumn', '\%81v.\+', 100)colorwidthcosa es útil por otras razones, así que me alegra que hayas publicado esto.¿Lo has intentado
'linebreak'?fuente
breakates solo un patrón (no una longitud), así que no veo cómo podría usar esto para forzar una envoltura suave a 80 ...^.{,80}\blo haría para las personas que usan pestañas suaves / expandidas. Tenga en cuenta que es perl regex, no vim regex.No hay una buena manera de hacerlo. Podemos cortar una improvisada
setlocal softwrapconautocmdsi modificamos @eborisch respuesta. Si cambiamos el tamaño cada vez que ingresamos a un búfer, y cambiamos el tamaño a una longitud particular cuando la variable localsoftwrap, obtenemos el comportamiento deseado.Supongamos que queremos ajustar suavemente a 80 columnas, podemos escribir lo siguiente en
.vimrc.Para activar el modo para un búfer en particular, use los siguientes comandos:
fuente