2010-09-22 24 views
29

estoy tratando de conseguir lo siguiente en mi .vimrcVim no es compatible con Unicode?

" Use the same symbols as TextMate for tabstops and EOLs 
set listchars=tab:▸\ ,eol:¬ 

Esas líneas son de here se trabajan perfectamente en vim 7.2 Recientemente he compilado e instalado vim 7.3 y ahora esos personajes no son entendidos por vim . También: Ctrl + V luego U en insertar no me permite insertar ningún carácter, simplemente parece ignorar eso.

¿Alguna idea?

Esto es lo que veo: set listchars=tab:�~V�\ ,eol:¬

+2

¿Está utilizando un terminal capaz de Unicode o gvim? –

+1

Sí, lo soy. Estoy usando la pantalla, pero puedo pegar esos caracteres en ella muy bien. – Sandro

+0

Aunque Vim admite unicode, los sistemas MS y Linux no tienen soporte Unicode, me refiero a sus terminales y consolas. Por lo tanto, he instalado vrapper en eclipse. Ahora, puedo escribir Unicode. :) – SibiCoder

Respuesta

34

Necesita compilar vim con soporte de múltiples bytes.

La forma más sencilla de hacerlo es ejecutar

./configure --with-features=big 
make 

Esto construirá vim con el apoyo correcto.

Puede verificar que fue compilado correctamente con

:version 

en vim o ejecutando

vim --version 

y en busca de +multi_byte. Si dice -multi_byte, no funcionará.

+1

¡Lo has clavado! ¡Increíble! ¡Gracias, gracias, gracias! – Sandro

+0

Me había estado pateando durante los últimos días, intentando que los símbolos de vim-powerline funcionaran con personajes elegantes. Esto finalmente lo solucionó. ¡Gracias! – Liam

+0

Instalé Arch Linux el otro día y mis símbolos de flecha y bordes de tmux fueron desordenados. Este vim fijo, creo que locale arregló el resto –

1

¿Necesita una

scriptencoding utf-8 

o lo que sea que codifica el .vimrc está realmente en?

+2

Además, compruebe los valores de las opciones 'encoding',' termencoding', 'fileencoding'. Asegúrese de que cuando esté editando '.vimrc' todos estén configurados en' utf-8'. –

+0

Lo he agregado y todavía no funciona. ¿Cómo controlo el valor de esas otras opciones? – Sandro

+1

Puede ver el valor de cualquier opción agregando un? después del comando establecido. es decir: ¿establecer la codificación? – Tassos

23

Tengo el siguiente en mi .vimrc

scriptencoding utf-8 
set encoding=utf-8 

y que en mi .gvimrc

set listchars=trail:·,precedes:«,extends:»,eol:↲,tab:▸\ 

y funciona bien (aviso de que hay un espacio después de la ▸ \).

+1

He agregado eso y nada ... – Sandro

+0

Me funcionó. nota: uso vim para windows. –

+0

interesante, en Linux no tengo que configurar nada. en vim win32 con + multi_byte, comencé a tener que agregarlo después de haber cambiado algo en mi vimrc ... ahora, poner esas dos líneas no generará un error, pero los caracteres del camino se representan como un signo de interrogación o algo más ... si dejo SOLO 'set encoding = utf-8' entonces funciona como antes – gcb

5

Tuve el mismo problema con el vim que se envía con OS X Lion aunque se compiló con multi_byte.

El problema fue la codificación utilizada por vim. Agregué set encoding=utf-8 en mi ~/.vimrc y el problema fue resuelto.

Ref: Terminal Vim redraw issues in OS X Lion

+0

Perfecto. Comparto un vimrc entre Mac y Windows usando Dropbox. Funcionó perfectamente bien con MacVim, pero Gvim en Windows me estaba dando errores al inicio. – mrak

4

tuve este problema mientras se está en una sesión de screen. Se ha ido con el ajuste siguiente en mi .bashrc:

export LANG=en_US.UTF-8 
2

No se olvide, si se está ejecutando en un terminal vim, asegúrese de que el propio terminal está utilizando UTF-8 también.

1

asegurarse de que está utilizando una fuente compatible. Mi problema es que inconsolata-g no admite los caracteres utf-8 en mi documento.

también, esto era todo lo que necesitaba en mi gvimrc:

set enc=utf-8 
set fileencoding=utf-8 
set fileencodings=ucs-bom,utf8,prc 
set guifont=Monaco:h14 
set guifontwide=NSimsun:h14 
Cuestiones relacionadas