Digamos que estoy editando algún archivo con vim (o gvim). ¿No tengo idea de la codificación del archivo y quiero saber si está en UTF-8 o ISO-8859-1 o lo que sea? ¿Puedo decirle a vim que me muestre qué codificación se utiliza?
fuente
Digamos que estoy editando algún archivo con vim (o gvim). ¿No tengo idea de la codificación del archivo y quiero saber si está en UTF-8 o ISO-8859-1 o lo que sea? ¿Puedo decirle a vim que me muestre qué codificación se utiliza?
La configuración de codificación de archivo muestra la codificación del búfer actual:
:set fileencoding
fileencoding=utf8
Realmente no hay una forma común de determinar la codificación de un archivo de texto plano, ya que esa información no se guarda en el archivo en sí, excepto en los archivos UTF-8 donde se encuentra la llamada lista de materiales que indica la codificación. Es por esto que los archivos xml y html tienen metatags de conjuntos de caracteres.
Puede imponer una codificación particular con la configuración de 'codificación'. Ver :help encoding
y :help fileencoding
en Vim por cómo el editor maneja estas configuraciones. También puede agregar varias configuraciones de codificación de archivos a su vimrc para que vim intente detectar basándose en las que se enumeran.
Tenga en cuenta que la codificación de los archivos es no declarado explícitamente En cualquier lugar en un archivo. Por lo tanto, VIM y otras aplicaciones deben adivinar la codificación. La forma canónica de hacer esto es con la
chardet
Aplicación, que puede ejecutarse desde VIM como tal:La respuesta proporcionada por jtimberman le muestra la codificación de la buffer actual que puede no ser la misma codificación que el archivo en el disco. Así, te darás cuenta de que
chardet
a veces mostrará una codificación diferente a VIM, especialmente si tiene VIM configurado para usar siempre una codificación específica (es decir, UTF-8).Lo bueno de
chardet
es que da un puntaje de confianza para su conjetura, mientras que VIM puede (y con frecuencia es) equivocarse al adivinar la codificación si no hay muchos caracteres arriba de \ x7F (ASCII 127). Por ejemplo, añadiendo un soloא
a un largo archivo de código PHP hacechardet
piensa que el archivo esISO-8859-2
con una confianza de 0,72, mientras que añadiendo la frase un poco más largaשלום, עולם!
Da UTF-8 con un puntaje de confianza de 0.99. En ambos casos,set fileencoding?
mostróUTF-8
no porque el archivo en el disco fuera UTF-8, sino porque VIM está configurado para usar UTF-8 internamente.fuente