2011-03-02 14 views
82

Trabajo ocasionalmente en páginas web que involucran scripts que no están en inglés, la mayoría de ellas usa utf-8 charset, VIM y Gvim no muestra caracteres UTF-8 correctamente.Cómo ver los caracteres UTF-8 en VIM o Gvim

Usando VIM 7.3.46 en Windows 7 de 64 bits, con set guifont=Monaco:h10 en _vimrc

¿Hay una manera de solucionar este problema?

Actualización: He buscado en Google y encontré que set guifontwide funciona como segunda alternativa 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 

Lo anterior NSimSun fuente trabaja para el chino, el problema es que no sé cómo se dieron el nombre de fuente de trabajar con VIM, Courier New se menciona como Courier_New también NSimsun hay ningún lugar en el directorio de fuentes. La fuente que quiero usar es Latha Pero no sé cómo usarlo en _vimrc File. set guifontwide=latha:h12 o set guifontwide=Latha:h12 no funciona.

Si configuro con éxito el guifontwide en latha, entonces mi problema estará resuelto, ¿cómo puedo hacer esto?

+0

¿cuál es el valor de ' 'guifont'' y el valor de'' guifontwide''? Además, ¿qué SO estás usando y qué versión de vim? – Benoit

+0

Sathish, ¿pudo encontrar alguna solución para esto? Estoy tratando de escribir gVim con el software eKalappai, pero ¿vim solo me está mostrando? personajes (aparentemente los salvan de la misma manera). – sundar

+0

@sundar No. Me rendí: | –

Respuesta

37

¿Usted intentó

:set encoding=utf-8 
:set fileencoding=utf-8 

?

+4

Lo he intentado con estas dos configuraciones, y todavía no puedo ver los caracteres utf-8. –

+1

-1. En realidad, esto no puede funcionar. Ninguna de estas opciones volverá a cargar el archivo. El primero modificará cómo vim almacena los búferes (y otras cosas) internamente, el segundo especificará que desea cambiar la codificación de un archivo que ya está cargado en un búfer, que se aplicará al guardarlo. – Benoit

+0

': set encoding = utf8' * WILL * actualizará el búfer y si el problema estaba en una codificación incorrecta, lo arreglará. Agregué la opción 'set fileencoding = utf8' para que no se ejecute el error más confuso de" No se puede convertir algunos caracteres "al guardar. –

50

intenta volver a cargar el documento usando:

:e! ++enc=utf8 

Si funciona se debe tal vez cambiar la configuración fileencodings en su .vimrc.

+2

No cambia nada para mí –

+0

No dice ......... –

+2

** NO ** ejecute esto antes de guardar su trabajo ya que borrará los cambios que haya realizado. ': u' te salvará sin embargo. –

4

En M $ Windows, gvim no le permite seleccionar fuentes no monoespaciadas. Lamentablemente, Latha es una fuente no monoespaciada.

Hay una forma de hack para que esto suceda: usando FontForge (puede descargar Windows binary de http://www.geocities.jp/meir000/fontforge/) para editar Latha.ttf y marcarlo como una fuente monoespaciado. Haciendo esto:

  1. Load fontforge, seleccione latha.ttf.
  2. Menú: Elemento -> Datos de fuentes
  3. Seleccione "OS/2" de lista de la izquierda de Datos de fuentes diálogo de la ficha
  4. Seleccione "Panose"
  5. Conjunto Proporción = Monospaced
  6. Guardar nueva versión TTF de esta fuente, pruébalo!

¡Buena suerte!

+0

No pude cambiar la fuente latha a monoespacio. Seguí exactamente sus pasos, pero el archivo guardado aún no funciona como fuente monoespaciada :( –

+1

@Sathish Manohar 1) sobrescribe el archivo TTF existente, reinicia Windows y pruébelo. o 2) puede guardar el archivo TTF en un nuevo archivo y modificar el nombre de la fuente. Instale el nuevo archivo TTF. Esta nueva fuente debe estar disponible en su lista. –

1

¿Se solucionó este problema mientras tanto?

que tenían el problema de que no se ha mostrado gVim todos los caracteres Unicode (pero sólo un subconjunto, incluyendo las diéresis y caracteres acentuados), mientras que :set guifont? estaba vacío; ver my question.Después de leer aquí, establecer el guifont a un valor razonable lo solucionó por mí. Sin embargo, no necesito caracteres más allá de 2 bytes.

+0

¿Cuál es un valor razonable para guifont? ¿Qué pusiste? – Christian

+0

Enumeré los valores que me funcionaron en [esta respuesta] (http://stackoverflow.com/a/22669647). – Tobias

1

No pude obtener ninguna otra fuente que instalé para mostrar en mi editor Windows GVim, así que simplemente cambié a Lucida Console que tiene al menos algo de soporte UTF-8. Esto, unido al final de su _vimrc:

" For making everything utf-8 
set enc=utf-8 
set guifont=Lucida_Console:h9:cANSI 
set guifontwide=Lucida_Console:h12 

Ahora veo al menos algunos caracteres UTF-8.

0

Si los japoneses vienen aquí, por favor, agregue las siguientes líneas a su ~/.vimrc

set encoding=utf-8 
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8 
set fileformats=unix,dos,mac 
Cuestiones relacionadas