Como alterar a codificação de um buffer sem nome no VIM?

0

É possível?

Eu só sei como isso pode ser feito para um buffer nomeado (arquivo). Deve ser reaberto com

++enc=<encoding> opção. Mas um buffer sem nome não pode ser reaberto.

Eu executei :set encoding=utf-8 , mas o texto exibido no VIM ainda estava ilegível. Somente depois de salvar o buffer em um arquivo, abri-lo e reabri-lo com :e ++enc=utf-8 ele poderia ser lido bem. No entanto, notei que houve um erro [ILLEGAL BYTE in line 37] . Mas estou feliz com isso. O principal é que o conteúdo é legível.

Não houve erro quando corri :set encoding=utf-8 , mas nada pareceu acontecer também.

VIM 7.4

    
por ka3ak 25.12.2017 / 10:33

2 respostas

0

Não há necessidade de reabri-lo - enquanto no modo de comando, você pode definir a codificação como quiser:

:set encoding=whatever

por exemplo,

:set encoding=utf-8

BTW, digite :help encoding-names em vim para obter uma lista de codificações suportadas.

    
por 25.12.2017 / 10:57
0

A opção 'encoding' é sobre a representação interna do texto do Vim em todos buffers. Isso não deve ser alterado após o início do Vim, e isso não afeta (pelo menos diretamente) a codificação de um buffer!

Você está procurando a opção :help 'fileencoding' :

:setlocal fenc=...

Para resumir: Que tipo de caracteres podem ser digitados e representados em um novo buffer são controlados pela opção 'encoding' . O "melhor" valor para isso é utf-8 , pois somente isso pode representar qualquer caractere (dentro do Unicode). Agora, se você criou um buffer sem nome e deseja armazená-lo em uma codificação diferente, use 'fileencoding' para alterá-lo (por exemplo, para ucs-2le ) para a primeira e subsequentes gravações. ( :w ++enc=... também funciona, mas apenas para aquela gravação em particular!)

Por outro lado, para a detecção de arquivos abertos, você prefere configurar a opção 'fileencodings' .

    
por 25.10.2018 / 11:30