Atualizei o vim e agora está descontente com alguns valores UTF-8 no meu .vimrc
.
Isso me levou à pergunta - quando o vim lê .vimrc
, que codificação assume que o arquivo possui? Ou seja, o que é fileencoding
então?
Atualizei o vim e agora está descontente com alguns valores UTF-8 no meu .vimrc
.
Isso me levou à pergunta - quando o vim lê .vimrc
, que codificação assume que o arquivo possui? Ou seja, o que é fileencoding
então?
Respostas:
É o que você define com o que é :scriptencoding
. deve ser a primeira linha do seu .vimrc
arquivo, por exemplo:
scriptencoding utf-8
set number
set ...
Esteja ciente de que algumas opções ( listchars
por exemplo) aceitam apenas valores de largura única.
Edit: Sim, Vim é estranho. encoding
é para o próprio editor, fileencoding
é para o buffer e scriptencoding
é para scripts do Vim.
scriptencoding
)
Conforme sugerido nos arquivos de ajuda ( :help scriptencoding
), se você não usar scriptencoding
, o vim não fará conversão, assumindo efetivamente que o script está na codificação da 'encoding'
opção. Isso é muito frequente utf-8
, ocasionalmente latin1
. Outras codificações são possíveis. Geralmente você quer usar
scriptencoding utf-8
quando seu arquivo de script contiver caracteres não-ascii e estiver codificando em utf-8. Se você usar apenas caracteres ascii de 7 bits, isso será desnecessário.
'fileencoding'
aplica-se ao buffer atual, não a scripts. Ao abrir um arquivo, o vim tenta adivinhar a codificação a partir da opção 'fileencodings'
.
~/,vimrc
como usarscriptencoding
~/,vimrc
como usarscriptencoding