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
textwidth
ywrapmargin
son 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 number
ya 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 :syntax
elemento, pero eso se rompió cuando se superpuso a otros elementos de sintaxis, así que dejé esa idea.
Respuestas:
Tú podrías
:set numberwidth=6
y: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
:match
como 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=80
resaltará 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)
colorwidth
cosa es útil por otras razones, así que me alegra que hayas publicado esto.¿Lo has intentado
'linebreak'
?fuente
breakat
es 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}\b
lo 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 softwrap
conautocmd
si 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