Quero digitar em diferentes idiomas usando o (g) Vim. Mas quando mudo para outro idioma usando a barra de idiomas (caracteres Devanagari ou Hindi) e digito qualquer coisa, (g) o vim é exibido ??? ??
.
O que eu tentei:
write ++enc=utf-8 foo.txt
set fileencoding=utf-8
set enc=utf-8
Em formação:
- Versão do GVim: 7.4 e também seu + multi_byte.
- Nenhuma alteração no arquivo vimrc padrão.
Acabei de começar com (g) vim.
microsoft-windows
unicode
msinfo
fonte
fonte
Respostas:
A codificação padrão parece ser
latin1
:Ao inserir caracteres, o Vim tenta convertê-los do conjunto de caracteres recebidos (provavelmente unicode) para latin-1. Isso falha, pois latin-1 não possui esses caracteres. Daí os pontos de interrogação.
A abertura de um arquivo existente (salvo com o bloco de notas ou outro programa) deve resultar em texto ilegível, pois agora o Vim está apenas tentando ler bytes e interpretá-los de acordo com o conjunto de caracteres latin-1, e não convertê-los no conjunto latin-1.
Você vai querer usar
utf-8
ou algo assim:Após o qual o script malaiala parece funcionar.
Observe que isso não fará com que os pontos de interrogação pré-existentes funcionem. Eles realmente são convertidos em pontos de interrogação (caractere
0x3f
) na entrada. Não há como recuperar o que foi inserido. Suspeito que essa seja a fonte de confusão dessa questão.Veja também
:help 'encoding'
.Como nota de rodapé, os glifos não suportados na fonte geralmente são renderizados com um glifo distinto; isso varia por fonte, mas geralmente é um bloco quadrado ou um ponto de interrogação com estilo diferente. você pode ver a diferença entre um ponto de interrogação "real" e um glifo não suportado
g8
, que mostrará o código do caractere.fonte