O que é codificação de arquivo .vimrc?

8

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 é fileencodingentão?

Dima Tisnek
fonte

Respostas:

5

É o que você define com o que é :scriptencoding. deve ser a primeira linha do seu .vimrcarquivo, por exemplo:

scriptencoding utf-8

set number
set ...

Esteja ciente de que algumas opções ( listcharspor 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.

Tae
fonte
Obrigado pela resposta, consegui consertar minha instalação com hacks. Eu gostaria que a resposta fosse atualizada com um exemplo de ~/,vimrccomo usarscriptencoding
Dima Tisnek
@DimaTisnek done! Eu não quero escrever na resposta, porque não é o que você pediu, mas os padrões do Vim estão confusos, IMHO e acho que é um bom motivo para experimentar o Neovim (na verdade, eu tive que procurar na minha configuração antiga para lembrar a sintaxe de scriptencoding)
Tae
1
@ Tae, a menos que você esteja no Windows, onde o Neovim ainda está muito atrás do vim.
Maxim Kim
2

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'.

Massa
fonte
Obrigado pela resposta, consegui consertar minha instalação com hacks. Eu gostaria que a resposta fosse atualizada com um exemplo de ~/,vimrccomo usarscriptencoding
Dima Tisnek