viernes, 10 de mayo de 2013

Cambiar codificación de ficheros con VI > VIM

Una vez que el archivo se encuentra abierto con VIM y suponiendo que el archivo esta codificado con iso-8859-1 (latin1) se debe teclear en el modo comandos la siguiente línea.

    :set fenc=utf-8

Si el archivo esta codificado con utf-8 y se desea pasar a iso-8859-1 se debe escribir la siguiente línea.

    :set fenc=iso-8859-1


Nota: No deben existir espacios entre fenc, el igual y el tipo de codificación que se utilizará.


Este comando solo permitirá cambiar la codificación del archivo que se encuentra abierto, sin embargo puede ser necesario editar la codificación de varios archivos para lo cual se puede ejecutar el siguiente comando en la consola de linux.

    find -name '*.php' -exec vim {} '+set fenc=utf-8' '+x' \;

find -name '*.php' permite buscar uno o más archivos dentro del directorio y de los directorios que se encuentran en su interior que coinciden con el parámetro de búsqueda.
-exec permite ejecutar un comando sobre los archivos que son encontrados.
vim {} '+set fenc=utf-8' permite cambiar la codificación de los archivos que coinciden con la búsqueda realizada.

2 comentarios:

Héctor Daniel Cortés González dijo...

¿No sería más fácil usar iconv(1P)?

$ iconv -f latin1 -t utf8 ...

:

villatux dijo...

si, es otra opción, lo agregaré, esta que pongo en el post es ya estando en vi. Gracias.