Eu trabalho em páginas da web que envolvem scripts em outro idioma de vez em quando, a maioria deles usa charset utf-8, VIM e Gvim não exibe caracteres UTF-8 corretamente.
Usando VIM 7.3.46 no Windows 7 de 64 bits, com set guifont=Monaco:h10
em _vimrc
Existe uma maneira de corrigir isso?
Atualização: pesquisei no Google e encontrei set guifontwide
atos como segunda alternativa para idiomas regionais.
Eu adicionei as seguintes linhas em _vimrc e muitos dos meus problemas foram resolvidos.
set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12
A fonte NSimsun acima funciona para chinês. O problema é que não sei como o nome da fonte funcionou com o VIM, Courier New
é mencionada, pois Courier_New
também NSimsun
não está em nenhum lugar do diretório de fontes. A fonte que quero usar é Latha
But, não sei como usá-la no arquivo _vimrc. set guifontwide=latha:h12
ou set guifontwide=Latha:h12
não funciona.
Se eu definir com sucesso o guifontwide
para latha
, meu problema será resolvido. Como fazer?
'guifont'
e o valor de'guifontwide'
? Além disso, qual sistema operacional você está usando e qual versão do vim?set guifontwide=NSimsun:h12
falha para mim, diz "Fonte ampla inválida" provavelmente o mesmo problema de não monoespaço?Respostas:
Tente recarregar o documento usando:
Se isso funcionar, talvez você deva alterar as
fileencodings
configurações do seu .vimrc.fonte
:u
vai te salvar embora.:set noro
:e! ++enc=utf8
, ele renderizou o utf-8, mas reclamou[ILLEGAL BYTE in line 286]
(a primeira linha da parte binária) dentro do arquivo. Estou supondo que o comportamento padrão é recorrer silenciosamente a alguma outra codificação quando isso acontece na abertura do Vim. Por alguma razão, porém,echo &enc
ainda relata utf-8 nesse caso.&enc
é a codificação que o vim usa internamente para armazenar o conteúdo do buffer. A configuração que contém a codificação para o arquivo atual é&fenc
Você tentou
?
fonte
:set encoding=utf8
IRÁ atualizar o buffer e se o problema estiver na codificação incorreta, ele o corrigirá. Eu adicionei aset fileencoding=utf8
opção para que você não encontre o erro mais confuso "Não é possível converter algum caractere" ao salvar.~/.vimrc
e funcionou bemSe japoneses vierem aqui, adicione as seguintes linhas ao seu
~/.vimrc
fonte
No Microsoft Windows, o gvim não permite que você selecione fontes não monoespaçadas. Infelizmente, Latha é uma fonte sem espaçamento uniforme.
Existe uma maneira de hack para fazer isso acontecer: usando FontForge (você pode baixar o binário do Windows em http://www.geocities.jp/meir000/fontforge/ ) para editar o Latha.ttf e marcá-lo como uma fonte monoespaçada. Fazendo assim:
Boa sorte!
fonte
No Linux, abra o arquivo de configuração do VIM
Adicionadas as seguintes linhas:
Salvar e sair, e comando do terminal:
Neste momento, o VIM exibirá chinês corretamente.
fonte
Este problema foi resolvido entretanto?
Tive o problema de que o gvim não exibia todos os caracteres Unicode (mas apenas um subconjunto, incluindo tremas e caracteres acentuados), enquanto
:set guifont?
estava vazio; veja minha pergunta . Depois de ler aqui, definir oguifont
com um valor razoável fixou-o para mim. No entanto, não preciso de caracteres com mais de 2 bytes.fonte
Não consegui que nenhuma outra fonte que instalei apareça no meu editor do Windows GVim, então apenas mudei para aquela
Lucida Console
que tem pelo menos um suporte melhor para UTF-8. Adicione isto ao final de_vimrc
:Agora vejo pelo menos alguns caracteres UTF-8.
fonte
No Windows gvim basta selecionar a fonte "Lucida Console".
fonte