La forma en que hago indicación de 80 columnas en Vim parece incorrecto: set columns=80. A veces también set textwidth, pero quiero poder ver y anticipar el desbordamiento de línea con la set columnsalternativa.
Esto tiene algunos efectos secundarios desafortunados :
- No puedo
set numberpor miedo a dividir entre archivos que tienen diferentes órdenes de números de línea; es decir, <100 archivos de línea y> = 100 archivos de línea requerirán dosset columnsvalores diferentes debido a la columna adicional utilizada para la visualización de dígitos adicionales. - También comienzo nuevas sesiones (g) de Vim en lugar de dividir las ventanas verticalmente. Esto se debe a
vsplitque me obliga a hacerloset columnscada vez que abro o cierro un panel, por lo que comenzar una nueva sesión es menos complicado.
¿Cómo maneja la indicación de 80 caracteres cuando desea set numbersdividir verticalmente, etc.?
vim
coding-style
cdleary
fuente
fuente

Respuestas:
Tengo esto configurado en mi .vimrc:
Esto resalta el fondo en un rojo sutil para el texto que supera el límite de 80 columnas (sutil en modo GUI, de todos modos, en modo terminal es menos).
fuente
A partir de vim 7.3, puede usar
set colorcolumn=80(set cc=80para abreviar).Como las versiones anteriores no admiten esto, mis
.vimrcusos en su lugar:Consulte también la documentación en línea sobre la
colorcolumnopción .fuente
highlight ColorColumn ctermbg=7Camino más corto:
fuente
ErrorMsges unhighlight-group. Hay muchos grupos de resaltado predeterminados en Vim que puede usar según la codificación de color que desee para este caso.Yo prefiero:
fuente
La respuesta de Simon Howard es genial. Pero
/\%81v.\+/no resalta las pestañas que exceden la columna 81. Así que hice un pequeño ajuste, basado en las cosas que encontré en VIM wiki y la elección de colores de HS anterior:Y ahora VIM resaltará cualquier cosa que exceda la columna 80.
fuente
guifg=whiteal final allí.Enfoque minimalista, no exagerado. Solo se resalta el carácter 79 de las líneas que son demasiado largas. Supera algunos problemas comunes: funciona en ventanas nuevas, las palabras que se desbordan se resaltan correctamente.
Nota: observe que
FileType scala,javaesto limita esto a los archivos fuente de Scala y Java. Probablemente quieras personalizar esto. Si lo omitiera, funcionaría en todos los tipos de archivos.fuente
FileType scala,java? (no funciona para mí)También puede dibujar una línea para ver el límite 80:
Resultado:
fuente
Una buena manera de marcar solo el primer carácter que sale de los límites especificados:
De la charla de Damian Conway .
fuente
Las versiones más recientes de vim permiten un
:set numberwidth=xvalor, que establece el ancho de la visualización del número de línea. Realmente no uso el plegado, etc., así que no sabría sobre eso. Sin embargo, dibujar una línea vertical delgada está más allá de las capacidades de una aplicación de consola. GVim puede permitir esto (no lo uso, así que no puedo comentar allí).fuente
Me temo que has puesto restricciones en el conjunto de soluciones que, bueno, te dejan con el conjunto nulo.
El uso
:set textwidth=80solucionará todos los problemas que mencionó, excepto que no puede ver fácilmente el límite de la línea. Si lo:set rulerhaces, habilitarás la visualización de la posición x, y en la barra de estado, que puedes usar para ver en qué columna estás.Aparte de eso, no estoy seguro de qué decirte. Es una pena perder la columna numérica, doblar la columna y dividirla solo porque tiene que hacerlo
:set columns=80.fuente
Puedes probar esto:
Eso configurará dos aspectos destacados en cada búfer, uno para los caracteres en las 8 columnas antes de lo que
&textwidthesté configurado, y uno para los caracteres más allá de esa columna. De esa manera tienes cierta anticipación. Por supuesto, puede ajustarlo para usar un ancho diferente si desea más o menos anticipación (que paga en forma de pérdida de resaltado de sintaxis en esas columnas).fuente
Bueno, mirando las columnas de ayuda, en realidad no está hecho para meterse.
En la consola, generalmente se determina por la configuración de la consola (es decir, se detecta automáticamente); en GUI, determina (y está determinado por) el ancho de las ventanas de gvim.
Así que normalmente solo dejas que las consolas y los administradores de ventanas hagan su trabajo comentando el
set columnsNo estoy seguro de lo que quiere decir con "ver y anticipar el desbordamiento de línea". Si desea que EOL se inserte aproximadamente en la columna 80, use uno
set textwidthoset wrapmargin; si lo que desea envoltura suave (es decir, la línea se envuelve, pero sin EOL real), y luego jugar conset linebreakyset showbreak.fuente
este está fuera del campo izquierdo, pero es un pequeño mapa agradable para cambiar el tamaño de su división actual a 80 caracteres si tiene los números de línea en:
fuente
Puede intentar esto para establecer el tamaño de la ventana para permitir 80 caracteres de texto real. Sin embargo, esto todavía no funciona con divisiones verticales.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)Esto requiere vim 7+, 7.3 para el número relativo.
fuente