Qual é a diferença entre esses dois comandos?
set encoding=utf-8
set fileencoding=utf-8
Preciso definir os dois quando quiser usar o utf-8?
Além disso, preciso definir a codificação de arquivo com set
ou setglobal
?
Qual é a diferença entre esses dois comandos?
set encoding=utf-8
set fileencoding=utf-8
Preciso definir os dois quando quiser usar o utf-8?
Além disso, preciso definir a codificação de arquivo com set
ou setglobal
?
Respostas:
No primeiro caso com
set encoding=utf-8
, você mudará a codificação de saída que é mostrada no terminal.No segundo caso com
set fileencoding=utf-8
, você alterará a codificação de saída do arquivo que está escrito .
Conforme declarado por @Dennis, você pode definir ambos em seu ~ / .vimrc se sempre quiser trabalhar em utf-8
.
Do wiki do VIM sobre como trabalhar com Unicode
" encoding
define como o vim deve representar os caracteres internamente . Utf-8 é necessário para a maioria dos sabores de Unicode."
" fileencoding
define a codificação para um arquivo específico (local para buffer);: setglobal define o valor padrão. Um valor vazio também pode ser usado: o padrão é o mesmo de 'codificação'. Ou você pode definir uma das codificações ucs, Isso pode tornar o mesmo arquivo de disco maior ou menor, dependendo de sua combinação particular de caracteres. Além disso, IIUC, utf-8 é sempre big-endian (high bit primeiro), enquanto ucs pode ser big-endian ou little-endian, então se você usá-lo, você provavelmente precisará definir 'bomba "(veja abaixo)."
vim -c "set encoding=utf-8" file.ext
.
Você pode definir a variável 'fileencodings' em seu .vimrc.
Esta é uma lista de codificações de caracteres consideradas ao começar a editar um arquivo existente. Quando um arquivo é lido, o Vim tenta usar a primeira codificação de caracteres mencionada. Se um erro for detectado, o próximo na lista é tentado. Quando uma codificação que funciona é encontrada, 'fileencoding' é definido para ela. Se tudo falhar, 'fileencoding' é definido como uma string vazia, o que significa que o valor de 'encoding' é usado.
Vejo :help filencodings
Se você costuma trabalhar com, por exemplo, cp1252, pode adicioná-lo lá:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9