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-optionse :help utf8e :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-8nas 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á.
fileencodingtambé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.