Quando o Vim lê um arquivo existente, ele tenta detectar a codificação do arquivo. Ao escrever o arquivo, o Vim usa a codificação de arquivo que detectou (exceto quando você diz de forma diferente). Assim, um arquivo detectado como UTF-8 é escrito como UTF-8, um arquivo detectado como Latin-1 é escrito como Latin-1 e assim por diante.
Por padrão, o processo de detecção é grosseiro. Todos os arquivos que você abrir com o Vim serão considerados como Latin-1, a menos que ele detecte uma marca de ordem de byte Unicode na parte superior. Um arquivo UTF-8 sem uma marca de ordem de byte será difícil de editar, porque quaisquer caracteres multibyte serão mostrados no buffer como seqüências de caracteres em vez de caracteres únicos.
Pior, o Vim, por padrão, usa o Latin-1 para representar o texto no buffer. Assim, um arquivo UTF-8 com uma marca de ordem de byte será corrompido por down-conversion para o Latin-1.
A solução é configurar o Vim para usar o UTF-8 internamente. Isso é, de fato, recomendado na documentação do Vim, e a única razão pela qual ele não está configurado dessa maneira é evitar a confusão entre os usuários que esperam que o Vim opere basicamente como um editor do Latin-1.
No seu .vimrc
, adicione set encoding=utf-8
e reinicie o Vim.
Or instead, set the
LANG
environment variable to indicate that UTF-8 is your preferred character encoding. This will affect not just Vim but any software which relies onLANG
to determine how it should represent text. For example, to indicate that text should appear in English (en
), as spoken in the United States (US
), encoded as UTF-8 (utf-8
), setLANG=en_US.utf-8
.
Agora o Vim usará o UTF-8 para representar o texto no buffer. Além disso, ele também fará um esforço mais determinado para detectar a codificação UTF-8 em um arquivo. Além de procurar por uma marca de ordem de byte, ele também verificará o UTF-8 sem uma marca de ordem de byte antes de retornar ao Latin-1. Portanto, ele não mais corromperá um arquivo codificado em UTF-8 e deverá exibir corretamente os caracteres UTF-8 durante a sessão de edição.
Para obter mais informações sobre como o Vim detecta a codificação do arquivo, consulte o
fileencodings
opção no Vim
documentação .
Para obter mais informações sobre como definir a codificação que o Vim usa
internamente, consulte o encoding
opção .
Se você precisar substituir a codificação usada ao gravar um arquivo de volta
para disco, consulte o fileencoding
opção .