Trabajo en páginas web que involucran scripts que no están en inglés de vez en cuando, la mayoría de ellos usa el juego de caracteres utf-8, VIM y Gvim no muestra los caracteres UTF-8 correctamente.
Usando VIM 7.3.46 en Windows 7 de 64 bits, con set guifont=Monaco:h10
_vimrc
¿Hay alguna forma de solucionar este problema?
Actualización: busqué en Google y encontré set guifontwide
actos como el segundo respaldo para los idiomas regionales.
Agregué las siguientes líneas en _vimrc y la mayoría de mis problemas se resolvieron.
set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12
La fuente NSimsun anterior funciona para el chino. El problema es que no sé cómo lograron que el nombre de la fuente funcione con VIM, Courier New
se menciona como Courier_New
tampoco NSimsun
está en ninguna parte del directorio de fuentes. La fuente que quiero usar es Latha
Pero, no sé cómo usarla en el archivo _vimrc. set guifontwide=latha:h12
o set guifontwide=Latha:h12
no funciona.
Si configuro con éxito el guifontwide
a latha
, entonces mi problema se resolverá, ¿cómo hacerlo?
'guifont'
y el valor de'guifontwide'
? Además, ¿qué sistema operativo estás usando y qué versión de vim?set guifontwide=NSimsun:h12
falla para mí, dice "Fuente ancha no válida" probablemente el mismo problema que no es de espacio único.Respuestas:
Intente volver a cargar el documento usando:
Si eso funciona, tal vez debería cambiar la
fileencodings
configuración en su .vimrc.fuente
:u
aunque te salvará.:set noro
:e! ++enc=utf8
, renderizó el utf-8, pero se quejó[ILLEGAL BYTE in line 286]
(la primera línea de la parte binaria) dentro del archivo. Supongo que el comportamiento predeterminado es retroceder silenciosamente a alguna otra codificación cuando esto sucede en la apertura de Vim. Sin embargo, por alguna razón,echo &enc
todavía informa utf-8 en ese caso.&enc
es la codificación que vim usa internamente para almacenar el contenido del búfer. La configuración que contiene la codificación del archivo actual es&fenc
Has probado
?
fuente
:set encoding=utf8
SE refrescar la memoria intermedia y si el problema estaba en la codificación incorrecta, será solucionarlo. Agregué unaset fileencoding=utf8
opción para que no se encuentre con el error más confuso "No se puede convertir algún carácter" al guardar.~/.vimrc
y funcionó bienSi los japoneses vienen aquí, agregue las siguientes líneas a su
~/.vimrc
fuente
En Microsoft Windows, gvim no le permitiría seleccionar fuentes no monoespaciadas. Desafortunadamente, Latha es una fuente no monoespaciada.
Hay una forma de pirateo para que esto suceda: usando FontForge (puede descargar el binario de Windows desde http://www.geocities.jp/meir000/fontforge/ ) para editar Latha.ttf y marcarlo como una fuente monoespaciada. Haciendo así:
¡Buena suerte!
fuente
En Linux, abra el archivo de configuración de VIM
Añadidas las siguientes líneas:
Guardar y salir, y comando de terminal:
En este momento, VIM mostrará correctamente el chino.
fuente
¿Se resuelve este problema mientras tanto?
Tuve el problema de que gvim no mostraba todos los caracteres Unicode (sino solo un subconjunto, incluidas las diéresis y los caracteres acentuados), mientras
:set guifont?
estaba vacío; mira mi pregunta . Después de leer aquí, estableciendoguifont
un valor razonable me lo arregló. Sin embargo, no necesito caracteres de más de 2 bytes.fuente
No pude obtener ninguna otra fuente que instalé para que apareciera en mi editor de Windows GVim, así que simplemente cambié a la
Lucida Console
que tiene al menos una compatibilidad algo mejor con UTF-8. Agregue esto al final de su_vimrc
:Ahora veo al menos algunos caracteres UTF-8.
fuente
En Windows gvim, simplemente seleccione la fuente "Lucida Console".
fuente