2011-10-17 14 views
13

In vim Estoy tratando de que resalte mi pantalla cuando supera los 80 caracteres (soy desarrollador de kernel y este es un requisito para el código kernel). Estoy utilizando el siguiente en mi archivo .vimrc hacer estoDestacando más de 80 caracteres con un esquema de color no estándar

highlight OverLength ctermbg=red ctermfg=white guibg=#59292 
match OverLength /\%81v.\+/ 

que fue sugerida aquí: Vim 80 column layout concerns

Sin embargo, soy daltónico y como resultado no puedo utilizar el esquema de colores por defecto y ver el texto en la pantalla, así que cambio mi esquema de color predeterminado usando :colorscheme torte también. Sin embargo, parece que el esquema de color anula el resaltado en mí (resalta bien cuando no tengo especificado el esquema de color y no cuando está especificado).

¿Alguien tiene alguna idea sobre cómo hacer que esto funcione con el cambio colorscheme? Gracias por su ayuda,

Respuesta

15

Eso es porque la mayoría de los esquemas de color tienen esta línea en su comienzo:

hi clear 

esto en claro todos los grupos que destacan creado (usted creó OverLength). Esto es bueno, porque ningún esquema de colores tiene todo configurado, y los colores del esquema anterior podrían seguir apareciendo.

Para resolver, en lugar de crear un nuevo grupo, hacer coincidir este patrón como Error que es un grupo Vim predeterminado, estará presente en cada combinación de colores. Cambie sus dos líneas por uno simplemente:

match Error /\%81v.\+/ 
+0

Me lo arreglaron. Muchas gracias – SaxyTimmy

+0

@sidyll, El resaltado desaparece de alguna manera al crear una ventana dividida. – vrybas

+0

@vrybas No estoy seguro si lo entiendo. ¿Es una división vertical? Por favor, considere publicar una pregunta por separado ;-) – sidyll

20

Si tiene Vim 7.3+ que puede utilizar:

:set colorcolumn=81 
+0

Eso es realmente bueno, nunca lo supe. Siempre he creado coincidencias resaltadas, esto es mucho mejor para trabajar con texto alineado. +1, y será una cuestión de preferencia entre esta respuesta y la mía. Este es bastante fácil de configurar, sin embargo, solo se resalta una columna (nada que un ': set cc = 80,81,82,83,84,85' no resuelve :-). – sidyll

+0

Sí ... Vi esa solución antes, pero tengo 7.2 y no se supone que deba actualizarla en el trabajo todavía. ¡Gracias por tu ayuda! – SaxyTimmy

+0

@sidyll también puede usar números relativos a 'textwidth'. 'set colorcolumn = + 1, + 2, + 3'. Ver ': h 'cc'' para más información. –

0

Puede utilizar Colorscheme evento para definir Overlength grupo:

augroup AddOverLength 
    autocmd! 
    autocmd ColorScheme * :highlight OverLength ctermbg=red ctermfg=white guibg=#59292 
augroup END 

Observe que debe o bien poner todas las llamadas a :colorscheme que suceda en su vimrc después de esta definición o explícitamente inicie este evento usando :doautocmd AddOverLength ColorScheme.

Cuestiones relacionadas