[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

AI.4 Archivos de texto y archivos binarios

GNU Emacs utiliza caracteres de nuevalínea para separar las líneas de texto. Esta es la convención utilizada en GNU y Unix.

Normalmente MS-DOS y MS-Windows usan retorno de carro y salto de línea, una secuencia de dos caracteres, para separar las líneas de texto. (El salto de línea es el mismo carácter que el nuevalínea). Por consiguiente, para editar archivos típicos cómodamente en Emacs se requiere conversión de estas secuencias de fin de línea (EOL, end of line). Y eso es lo que Emacs hace normalmente: convierte el retorno de carro y salto de línea en un nuevalínea cuando lee un archivo, y convierte el nuevalínea en un retorno de carro y un salto de línea cuando graba un archivo. El mismo mecanismo que maneja la conversión de códigos de caracteres internacionales efectúa también esta conversión (@pxref{Sistemas de codificación}).

Una consecuencia de esta conversión especial del formato de la mayoría de los archivos es que las posiciones reportadas por Emacs (@pxref{Info de posición}) no concuerdan con la información de tamaño de archivo conocida por el sistema operativo.

Además, si Emacs reconoce por el contenido de un archivo que el mismo usa nuevalínea en vez de retorno de carro y salto de línea para separar las líneas, no realiza la conversión EOL cuando lee y graba dicho archivo. Por lo tanto, ud. puede leer y editar archivos de sistemas GNU y Unix en MS-DOS sin esfuerzo especial, y retendrán su convención de fin de línea estilo Unix después de editarlos.

La línea de modo indica si la conversión de fin de línea fue usada para el búfer actual. Si la traducción de fin de línea de MS-DOS está en uso para el búfer actual, aparece una barra invertida `\' junto al indicador de sistema de codificación al principio de la línea de modo (@pxref{Línea de modo}). Si no se efectuó conversión EOL, se muestra la cadena `(Unix)' en lugar de la barra invertida, para avisarle que el formato EOL del archivo no es el típico retorno de carro y salto de línea.

Para visitar un archivo especificando si usa fin de línea estilo DOS o o estilo Unix, especifique un sistema de codificación (@pxref{Especificar codificación}). Por ejemplo, C-x RET c unix RET C-x C-f foobar.txt visita el archivo `foobar.txt' sin convertir los EOLs; si alguna línea termina con un par de retorno de carro y salto de línea, Emacs mostrará `^M' al final de dicha línea. De manera similar, ud. puede mandar a Emacs que guarde un archivo en un formato EOL específico con el comando C-x RET f. Por ejemplo, para guardar un búfer con formato EOL de Unix, teclee C-x RET f unix RET C-x C-s. Si visita un archivo conversión de fines de línea DOS, entonces guárdelo con formato de fin de línea de Unix, que efectivamente convierte el archivo al estilo de fin de línea de Unix, como dos2unix.

Cuando usa NFS o Samba para acceder a sistemas de archivos que residen en computadoras con sistemas GNU o Unix, Emacs no debería efectuar la traducción de fines de línea en ningún archivo de estos sistemas: ni siquiera cuando ud. crea un nuevo archivo. Para solicitar esto, designe dichos sistemas de archivo como sistemas de archivos no traducidos llamando a la función add-untranslated-filesystem. Pide un argumento: el nombre del sistema de archivos, incluyendo una letra de unidad y optativamente un directorio. Por ejemplo,

 
(add-untranslated-filesystem "Z:")

designa la unidad Z como sistema de archivos no traducido, y

 
(add-untranslated-filesystem "Z:\\foo")

designa el directorio `\foo' en la unidad Z como sistema de archivos no traducido.

Comúnmente ud. usaría add-untranslated-filesystem en su archivo `_emacs', o en `site-start.el' de modo que todos los usuarios de su sitio se beneficien del mismo.

Para contrarrestar el efecto de add-untranslated-filesystem, use la function remove-untranslated-filesystem. Esta función pide un argumento, que debería ser una cadena igual que la usada anteriormente con add-untranslated-filesystem.

Designar un sistema de archivos como no traducido no influye en la conversión de juego de caracteres, sólo la de fines de línea. Esencialmente, manda a Emacs crear los archivos nuevos con la convención de Unix de usar nuevalínea al final de las líneas. @xref{Sistemas de codificación}.

Algunos tipos de archivos no deberían ser convertidos en absoluto, porque su contenido no es realmente texto. En consecuencia, Emacs en MS-DOS distingue ciertos archivos como archivos binarios. (Esta distinción no forma parte de MS-DOS; sólo la realiza Emacs). Los archivos binarios comprenden programas ejecutables, archivos comprimidos, etc. Emacs usa el nombre de archivo para decidir si tomará un archivo como binario: la variable file-name-buffer-file-type-alist define los patrones de nombres de archivos que indican archivos binarios. Si un nombre de archivo concuerda con uno de los patrones para archivos binarios (aquellos cuyas asociaciones son del tipo (patrón . t), Emacs lee y graba dicho archivo utilizando el sistema de codificación no-conversion (@pxref{Sistemas de codificación}) que deshabilita todas las conversiones de sistemas de codificación, no sólo la conversión de fines de líneas. file-name-buffer-file-type-alist también incluye patrones de nombres de archivos reconocidos como archivos de texto estilo DOS con formato de fin de línea de retorno de carro más salto de línea, tales como `CONFIG.SYS'; Emacs siempre graba dichos archivos con fines de línea estilo DOS.

Si un archivo que pertenece a un sistema de archivos no traducido concuerda con uno de los patrones de file-name-buffer-file-type-alist, la conversión de fines de línea esta determinada por file-name-buffer-file-type-alist.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Roberto on abril, 2 2007 using texi2html 1.76.