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

W.7 Librerías de código Lisp para Emacs

El código Lisp de los comandos de edición de Emacs está almacenado en archivos cuyos nombres terminan en `.el' por convención. Esta terminación le indica a Emacs que los edite en modo Emacs-Lisp (@pxref{Ejecutar Lisp}).

Para ejecutar un archivo de código Emacs Lisp, utilice M-x load-file. Este comando lee un nombre de archivo empleando el minibúfer y luego ejecuta el contenido de dicho archivo como código Lisp. No es necesario visitar antes el archivo; en cualquier caso, este comando lee el archivo como se halla en el disco, no el texto de un búfer de Emacs.

Una vez que se instaló un archivo de código Lisp en los directorios de librerías de Emacs Lisp, los usuarios pueden cargarlo utilizando M-x load-library. Los programas pueden cargarlo llamando a load-library, o con load, una función más primitiva que es similar pero acepta algunos argumentos suplementarios.

M-x load-library difiere de M-x load-file en que busca en una secuencia de directorios y prueba tres nombres de archivos en cada directorio. Suponga que su argumento es lib; los tres nombres son `lib.elc', `lib.el', y por último sólo `lib'. si existe `lib.elc', por convención es el resultado de compilar `lib.el'; es mejor cargar el archivo compilado, ya que cargará y correrá más rápido.

Si load-library encuentra que `lib.el' es más nuevo que el archivo `lib.elc', da una advertencia, porque es probable que alguien efectuó cambios al archivo `.el' y olvidó recompilarlo.

Ya que el argumento a load-library generalmente no es un nombre de archivo válido, no está disponible el completamiento de nombres de archivos. Efectivamente, cuando usa este comando, ud. generalmente no sabe exactamente cuál nombre de archivo se usará.

La secuencia de directorios revisada por M-x load-library está especificada por la variable load-path, una lista de cadenas que son nombres de directorios. El valor po defecto de la lista contiene el directorio donde se almacena el código Lisp del propio Emacs. Si ud. tiene librerías suyas, póngalas en un único directorio y agregue ese directorio a load-path. nil en esta lista representa el directorio por defecto actual, pero probablemente no sea una buena idea poner nil en la lista. Si ud. se encuentra deseando que nil estuviera en la lista, lo más probable es que en realidad quiera utilizar M-x load-file por esa vez.

Frecuentemente ud. no da ningún comando para cargar una librería, porque los comandos definidos en la librería están configurados para autocargar dicha librería. Cuando intente correr cualquiera de esos comandos se llamará a load para cargar la librería; esto reemplaza las definiciones autoload con las verdaderas de la librería.

El código Emacs Lisp se puede compilar a byte-code que carga más rápido, ocupa menos espacio cuando está cargado, y se ejecuta más rápido. See (elisp)Compilación a bytecode section `Compìlación a bytecode' in el Manual de referencia de Emacs Lisp. Por convención, el código compilado de una librería va en un archivo aparte cuyo nombre consiste en el archivo fuente de la librería con una `c' al final. Por lo tanto, el código compilado para `foo.el' va en `foo.elc'. Es por ello que load-library primero busca los archivos `.elc'.

Por defecto, Emacs se rehúsa a cargar archivos Lisp que fueron compilados con XEmacs, una versión modificada de Emacs; los mismos pueden hacer que Emacs se caiga. Ajuste la variable load-dangerous-libraries a t si quiere intentar cargarlos.


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

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