Haga que vim ignore los errores de conversión al leer el archivo

Haga que vim ignore los errores de conversión al leer el archivo

Tengo un archivo UTF-16 con una lista de materiales. He configurado codificaciones de archivos en:

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

Sin embargo, debido a un carácter en una línea, vim no detecta automáticamente UTF-16 y por defecto es latin1, con todos los ^@marcadores nulos. Al obligar a vim a leer el archivo como UCS ( :e ++enc=ucs-bom), lee el archivo correctamente pero informa "ERROR DE CONVERSIÓN en la línea {nn}", pero aparte de ese carácter, el resto del archivo se ha convertido correctamente. Si se elimina el carácter incorrecto, el archivo se interpreta y muestra correctamente.

¿Existe alguna forma de hacer que vim ignore los errores de conversión? Forzar la codificación cada vez que hay una lista de materiales válida es un poco molesto.

Respuesta1

Un error de conversión significa que los datos están dañados (o que están dañados después de escribir el archivo), por lo que no existe una configuración global para ignorarlos. En su caso, puede ser solo un carácter intrascendente, pero silenciosamente puede inutilizar el archivo completo en otro caso.

Puede suprimir el error de conversión mediante el ++bad=...argumento (cp. :help ++bad), que se antepone :editcomo el++enc=...

Si realmente desea suprimir todos los errores de conversión, deberá escribir un :EditBadcomando personalizado:

:command! -bar -bang -nargs=* -complete=file EditBad edit<bang> ++bad=? <args>

información relacionada