Obtenha o vim para ignorar erros de conversão ao ler o arquivo

1

Eu tenho um arquivo UTF-16 com uma lista de materiais. Eu configurei fileencodings para:

set fencs=ucs-bom,utf-16le,utf-8,default,latin1    

No entanto, devido a um caractere em uma linha, o vim não detecta automaticamente o UTF-16 e o padrão é latin1, com todos os marcadores ^@ null. Ao forçar o vim a ler o arquivo como UCS ( :e ++enc=ucs-bom ), ele lê o arquivo com êxito, mas relata "CONVERSION ERROR na linha {nn}", mas diferente daquele caractere que o restante do arquivo converteu corretamente. Se o caractere ruim for removido, o arquivo será corretamente interpretado e exibido.

Existe alguma maneira de o vim ignorar os erros de conversão? Forçar a codificação toda vez que houver uma BOM válida é um pouco chato.

    
por Chris J 01.06.2015 / 11:00

1 resposta

0

Um erro de conversão significa que os dados estão corrompidos (ou estão corrompidos após a gravação do arquivo), portanto não há uma configuração global para ignorá-los. No seu caso, isso pode ser apenas um caractere único e inconseqüente, mas pode silenciosamente tornar o arquivo completo inútil em outro caso.

Você pode suprimir o erro de conversão por meio do argumento ++bad=... (cp. :help ++bad ), que é anexado a :edit da mesma forma que o ++enc=...

Se você realmente quiser suprimir todos os erros de conversão, terá que escrever um comando :EditBad personalizado:

:command! -bar -bang -nargs=* -complete=file EditBad edit<bang> ++bad=? <args>
    
por 01.06.2015 / 11:21

Tags