En estas preguntas y respuestas , se observa que hay un grupo resaltado para CursorLineNr
, que se aplica al número de línea de la línea del cursor cuando set cursorline
está activado.
Noté que el uso de la línea del cursor también cambia el color para otro grupo de resaltado SpecialKey
, que se aplica si tiene, por ejemplo:
set list listchars=tab:\|_,trail:-
El problema con esto para mí es que uso un fondo oscuro (y, por lo tanto, una línea de cursor oscura). Mi SpecialKey
configuración normal también es muy oscura, por lo que los listchar
símbolos son solo marginalmente visibles. Pero usarlos cursorline
son blancos , lo que hace que el trail
personaje no se distinga de haber golpeado realmente -
. El carácter de rastro se usa cada vez que escribe un espacio al final de una línea, por lo que esto es más que un problema menor; Por lo general, escribir una línea de principio a fin implica una cantidad de espacios que deben distinguirse fácilmente de un error tipográfico de guión mientras se trabaja (o viceversa, un error tipográfico de espacio cuando se pretendía un guión).
Dado que ninguno de los otros grupos destacados parece verse afectado, CursorLineNr
presumiblemente se está aplicando algo así , pero al mirar la hi
lista no veo nada apropiado.
¿Alguien sabe qué es esto? Mejor aún, ¿alguien sabe de alguna manera de modificar algún grupo resaltado para la línea del cursor?
fuente
Respuestas:
He estado luchando con ese comportamiento durante mucho tiempo.
Básicamente, el color de primer plano de
SpecialKey
la línea actual se cambia al color de primer plano deNormal
if:cursorline
opción está habilitadaCursorLine
grupo resaltado tiene un conjunto de colores de fondo.Nunca he podido arreglar ese comportamiento, no importa lo que haya intentado. El problema radica en algún lugar del código fuente de Vim.
fuente
~
un poco menos confuso (también podría buscar algunos caracteres oscuros unicode para usar).none
), traté de dejar su valor predeterminado (estaba subrayado), los espacios aún cambiaron su color de primer planoLo que funcionó para mí fueron las siguientes líneas en mi
.vimrc
(basado en la respuesta de Igor Mikushkin ).VimEnter
solo funciona para el primer archivo que abras, no para los archivos / pestañas que abras después.BufNewFile,BufRead
Hasta ahora ha funcionado para todos los buffers que he abierto.La primera línea cubre los espacios en blanco. Vim los destaca en el
SpecialKey
grupo, por lo que les aplicamos esos estilos.La segunda línea cubre nuevas líneas. Vim los destaca en el
NonText
grupo, por lo que les aplicamos esos estilos. Realmente solo necesita la segunda línea si susNonText
caracteres están resaltados de manera diferente a losSpecialKey
caracteres.fuente
Las siguientes líneas en .vimrc me solucionaron el problema.
Invalida la aplicación de otros estilos para pestañas y espacios finales dentro de una línea de cursor.
fuente
matchadd()
resultado en una variable, si no lo usa?Existe otra "solución", en realidad una especie de error para este problema.
Tengo grupos de sintaxis personalizados para cosas como "listchars".
Me gusta esto:
Podrías hacer algo como esto (aunque no lo probé):
Pero hay al menos dos problemas con este enfoque:
Para solucionar esto tengo funciones especiales como:
para cada grupo de sintaxis, que uso con frecuencia, para corregir el resaltado manualmente. Puede hacerlo de otra manera, como los comandos automáticos o establecer manualmente el valor de la opción de sintaxis. Para que el restablecimiento de la sintaxis funcione, uno también debe tener esto:
en cada archivo de sintaxis correspondiente, como
~/.vim/after/syntax/javascript.vim
let g:indentLine_newVersion = 0
, donde el complemento funcionaba normalmente.Pero de otra manera, este enfoque funciona normalmente sin el complemento IndentLine:
Y aceptable con eso:
fuente