Eu tenho um arquivo de texto. Disseram-me para torná-lo UTF8. Como posso fazer isso com o Vim?
Eu tenho um arquivo de texto. Disseram-me para torná-lo UTF8. Como posso fazer isso com o Vim?
Respostas:
Se você estiver editando um arquivo codificado como latin1, verá que 'fileencoding' para aquele buffer está definido como latin1. Portanto, você precisará definir manualmente a codificação do arquivo antes de salvá-lo.
:set fileencoding=utf8
:w myfilename
Observe também que os arquivos UTF8 geralmente começam com uma Marca de Ordem de Byte (BOM), que indica endianness. O BOM é opcional, mas alguns programas o utilizam exclusivamente para determinar a codificação do arquivo. Sob certas condições, o Vim escreverá o BOM, mas às vezes não. Para definir explicitamente o BOM, faça o seguinte:
:set bomb
Para mais informações :help mbyte-options
e :help utf8
e :help bomb
.
set fileencoding=utf-8
-lo novamente com antecedência. O Vim nem percebe o BOM se você lhe diz para escrever um (e ele realmente escreve). Para fazer o utf-8 funcionar, você precisa disso ou set encoding=utf-8
nas configurações de inicialização. Pelo menos, essa é a história do meu sistema.
:w ++enc=utf-8 %
para gravar o arquivo na codificação utf-8 no disco.
fileencoding
, o :w ++enc=utf-8
é válido uma vez, mas na próxima vez que você executar :w
, o valor de 'fileencoding'
será usado, e se você não o alterou (explicitamente durante a edição ou recarregando o arquivo, esperando que 'fencs'
está definido apropriadamente e a codificação real é bem detectada), a codificação antiga voltará.
fileencoding
também é uma resposta válida à pergunta, o que não leva IMO a tomar maus hábitos. Mas tudo bem, isso é apenas uma questão de humor, suponho.