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 :edit
como el++enc=...
Si realmente desea suprimir todos los errores de conversión, deberá escribir un :EditBad
comando personalizado:
:command! -bar -bang -nargs=* -complete=file EditBad edit<bang> ++bad=? <args>