¿Qué podría causar personajes extraños en Vim?


13

Tengo este problema realmente extraño en Vim usando el complemento de árbol NERD, donde, como puedes ver en la imagen, los personajes se muestran muy extraños. Donde está el ahat, ~ V 3/4 debería ser | -. He configurado mi LANG en en_US y LC_ALL en en_US (en Arch Linux), y estoy usando la fuente Anonymous Pro, aunque cambiar la fuente no hace ninguna diferencia.

muy extraño


Parece un problema de juego de caracteres. Su complemento está utilizando el juego de caracteres UTF-8 mientras que su gvim probablemente espera latin1. Lo siento, no tengo una solución más completa en este momento. Podría intentar ejecutar " :set fenc=utf-8", pero esa no es realmente la solución a largo plazo.
garyjohn

1
De hecho, parece un problema de codificación de caracteres. Mi conjetura es que los datos contienen BO (DIBUJOS DE CAJA LUZ VERTICAL Y DERECHA, U + 251C), que es 0xE2 0x94 0x9C en UTF-8. Interpretado como ISO-8859-1, el primer byte es â, los otros son códigos de control. El resto es oscuro, pero forzar la interpretación de los datos a UTF-8 debería arrojar algo de luz sobre el problema.
Jukka K. Korpela

Ok, sí, el dibujo de la caja tiene sentido, siempre pensé que era solo una barra y un guión. Anonymous Pro tiene el cuadro de dibujo de personajes.
Tanner

@Tom Wijsman No estoy seguro de qué cambiaste sobre el título. Su edición dice que editó el título, pero no se cambió nada.
Tanner el

@Tanner: He agregado "Qué podría causar" y un signo de interrogación.
Tamara Wijsman

Respuestas:



6

He resuelto el problema. Lo que hice para resolverlo:

  • Editado /etc/locale.genen LC_ALL="en_US.UTF-8"lugar deLC_ALL="en_US"
  • Corrió locale-gencomo root
  • Ran locale -a, se notaba en_US.UTF-8; Sin embargo, localemostró LC_ALLaún siendo en_US, entonces recordé que había exportado LC_ALLen mi .bashrcúltima noche tratando de solucionar este problema, por lo que he cambiado LANGy LC_ALLqueen_US.UTF-8
  • Recargué la terminal, corrí gvim, ¡éxito! Sin embargo, es extraño, ahora está usando los caracteres de flecha triangular, en lugar de los de cuadro. Me hace pensar que usa las cajas para ISO-8859 y los triángulos para UTF-8 posiblemente, lo que me lleva a sospechar que podría tener problemas en el futuro en algún otro programa. Lo arreglaré cuando se trata de eso.

1
Esto no fue suficiente para arreglar esto por mí; También tuve que recompilar vim con multi_byte. Funciona bien ahora.
chris.ritsen

Comprobaré si mi versión de vim está compilada con multi_byte más tarde esta noche.
Tanner

LC_ALL="en_US.UTF-8fue suficiente para mí
Jakub M.

3

Tal vez esto no valga la pena, pero parece que funcionó para mí.

Cambié la línea en NERDTree.vim:

call s:initVariable("g:NERDTreeDirArrows", s:running_windows) 

(fue !s:running_windowsantes)

Ahora no veo ningún +símbolo elegante , pero al menos saltar directorios funciona desde vim. Estoy en Solaris y no creo que tenga acceso de root.


1

Mi cambio fue eliminar la negación booleana (¡personaje!). Aquí hay un git diff:

~ / .vim / plugged / nerdtree / plugin] $ git diff NERD_tree.vim
diff --git a / plugin / NERD_tree.vim b / plugin / NERD_tree.vim
índice bbcc55f..6342b6c 100644
--- a / plugin / NERD_tree.vim
+++ b / plugin / NERD_tree.vim
@@ -66,7 +66,7 @@ call s: initVariable ("g: NERDTreeShowHidden", 0)
 llamada s: initVariable ("g: NERDTreeShowLineNumbers", 0)
 llamada s: initVariable ("g: NERDTreeSortDirs", 1)

-if! nerdtree # runningWindows ()
+ si nerdtree # runningWindows ()
     llamada s: initVariable ("g: NERDTreeDirArrowExpandable", "--junk1-here--")
     llamada s: initVariable ("g: NERDTreeDirArrowCollapsible", "--junk2-here--")
 más

1

Agregar valores explícitamente a las siguientes 2 variables en .vimrc (vim config) resolvió el problema para mí:

let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'

Estos deberían ser valores predeterminados, pero por alguna razón no se establecieron para mí en ubuntu / vim.


1

Si su vimrc está cambiando guicursor, intente eliminar esa línea. Otras variables que parecen causar / prevenir estas son:

set guicursor=en vimrc
set t_Co=en vimrc
export TERM=xterm-256coloren shell


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.