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 columns
alternativa.
Esto tiene algunos efectos secundarios desafortunados :
- No puedo
set number
por 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 columns
valores 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
vsplit
que me obliga a hacerloset columns
cada 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 numbers
dividir 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=80
para abreviar).Como las versiones anteriores no admiten esto, mis
.vimrc
usos en su lugar:Consulte también la documentación en línea sobre la
colorcolumn
opción .fuente
highlight ColorColumn ctermbg=7
Camino más corto:
fuente
ErrorMsg
es 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=white
al 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,java
esto 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=x
valor, 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=80
solucionará todos los problemas que mencionó, excepto que no puede ver fácilmente el límite de la línea. Si lo:set ruler
haces, 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
&textwidth
esté 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 columns
No 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 textwidth
oset wrapmargin
; si lo que desea envoltura suave (es decir, la línea se envuelve, pero sin EOL real), y luego jugar conset linebreak
yset 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