2011-04-21 15 views
10

Noté que el símbolo 'showbreak' se destaca con el punto culminante "sin texto" color-elemento. NonText también se usa para los caracteres EOL.
Me gustaría mantener el color de resaltado para los caracteres EOL, pero quiero cambiarlo porque el símbolo del showbreak es posible?VIM: Cómo cambiar el color de resaltado Showbreak sin utilizar el color no es de texto de elementos

Otro problema es que no se muestra mi símbolo showbreak. Me gustaría utilizar este símbolo "↳" y ponerlo en la columna linenumers (usando set cpoptions + = n). No puedo encontrar la forma de mostrar el símbolo y cómo poner un espacio después del símbolo de showbreak (entre el texto y el símbolo).

¿Alguien me puede ayudar?

+0

Mismo problema aquí, aunque esta es una pregunta antigua. Para mí, es molesto que el 'showbreak' no sea del mismo color que los números de línea cuando se usa' cpoptions + = n': http://ell.io/k5A7 – ELLIOTTCABLE

Respuesta

6

no creo que va a llegar destacando a ser diferente que el carácter EOL, por lo menos yo no tengo conocimiento de una manera de hacer eso.

Para la segunda parte lo que pueda ayudar. Yo era capaz de conseguir "↳" a aparecer en mi columna de número de línea con la siguiente configuración:

let &showbreak = '↳ ' 
set wrap 
set cpo=n 

en cuenta que hay un espacio después del . Esto se alinea bien hasta que tenga> 9 líneas en el archivo. Si desea que se alinee con el último carácter de la columna numérica, independientemente de la cantidad de líneas, no estoy seguro de lo que tendrá que hacer.

Editar: Recientemente he escrito proof-of-concept function para alguien en IRC que destaca el primer carácter en una línea que se ha envuelto con un grupo de resaltado diferente. No se ha probado mucho, pero parece funcionar. No es exactamente lo que estás buscando, pero tal vez valga la pena echarle un vistazo.

+0

, gracias Randy. Cuando inserto la primera línea en la línea de comandos, veo esto: 'set showbreak =? \' – Reman

+0

¿Puedes ingresar otros caracteres multibyte en vim? ¿La salida de 'vim --version' tiene" + multi_byte "? –

+0

Solo tengo estas características incluidas: + multi_byte_ime/dyn + multi_lang. Mi codificación es latin1. Cuando lo cambio a utf-8 puedo insertar el símbolo de escenografía anterior, pero no puedo imprimir en utf-8. Utf-8 ofrece muchos problemas en muchos idiomas (europeos). ¿Sabes si hay otra forma de agregar + multi-byte a vim sin cambiar la codificación a utf-8? – Reman

5

:help hl-NonText hace que sea bastante claro que no se puede tener diferentes colores para la cadena 'showbreak' y otras cadenas no son de texto, de los cuales eol es un miembro (véase :help 'listchars'):

nontext

'~ 'y' @ 'al final de la ventana, caracteres de' showbreak 'y otros caracteres que realmente no existen en el texto (p. ej., ">" que se muestran cuando un carácter de doble ancho no cabe en el extremo de la línea ).

Si usted está dispuesto a aceptar esta limitación (@elliottcable) hi! link NonText LineNr coincidirá con una cadena 'showbreak' a los colores de número de línea.

Si realmente quería conseguir inteligente, como un compromiso que podría crear una asignación o comando para alternar entre ':set list' y ':set nolist' que también ajustar el NonTexthighlight establecer de forma simultánea.

Si utiliza :set relativenumber (añadido en vim 7.3), :set showbreak=↳\ \ \ mantendrá de forma fiable su 'showbreak' perfectamente alineados ya que la anchura número no va a cambiar a medida que navega por el archivo. (Esto, además de la :set cpo+=n y :set wrap @Randy Morris mencionó en su respuesta.)

definitivamente se necesita UTF-8 para el personaje , ya que no aparece en otras codificaciones.Recomiendo encarecidamente documentar cuidadosamente sus problemas de codificación, con detalles sobre cómo reproducirlos junto con su sistema operativo, su versión y la salida :version de vim, y publicarlos como preguntas separadas. UTF-8 debe ser ayudando discute varios idiomas en lugar de ser un impedimento.

+0

(tarde en una fiesta) Me pregunto si es posible usar caracteres unicode para 'showbreak' como' \ uf443' de las fuentes nerd. Entonces sí, ¿es posible? – ddnomad

Cuestiones relacionadas