Diferencia entre revisiones de «GNU Emacs»
Sin resumen de edición |
m →Internacionalización: corrijo error |
||
Línea 172: | Línea 172: | ||
=== Internacionalización === |
=== Internacionalización === |
||
Emacs soporta la edición de texto escrito en muchos [[lenguaje|lenguajes humanos]]. Hay soporte para muchos alfabetos, guiones, sistemas de escritura y convenciones culturales. Emacs proporciona revisión ortográfica para muchos lenguajes mediante la llamada a programas externos como [[ispell]]. Muchos sistemas de codificación están soportados, como por ejemplo [[UTF-8]]. La versión 21.5 de XEmacs tiene soporte parcial para [[Unicode |
Emacs soporta la edición de texto escrito en muchos [[lenguaje|lenguajes humanos]]. Hay soporte para muchos alfabetos, guiones, sistemas de escritura y convenciones culturales. Emacs proporciona revisión ortográfica para muchos lenguajes mediante la llamada a programas externos como [[ispell]]. Muchos sistemas de codificación están soportados, como por ejemplo [[UTF-8]]. La versión 21.5 de XEmacs tiene soporte parcial para [[Unicode]]. La versión 21.4 de GNU Emacs tiene un soporte similar. Emacs 22 tendrá mejor soporte. Todos estos esfuerzos para soportar Unicode utilizan una codificación interna específica de Emacs, con lo cual se necesita una conversión para cargar y guardar. [[UTF-8]] será el sistema de codificación interna de Emacs en una versión futura de XEmacs 21.5, y seguramente en GNU Emacs 23. |
||
No obstante, la interfaz de usuario de Emacs está en inglés y no ha sido traducida a otros lenguajes, con la excepción del tutorial para principiantes. |
No obstante, la interfaz de usuario de Emacs está en inglés y no ha sido traducida a otros lenguajes, con la excepción del tutorial para principiantes. |
Revisión del 18:59 7 ene 2009
Emacs | ||
---|---|---|
Parte de Emacs y plataforma | ||
GNU Emacs 22.0.91.1 | ||
Información general | ||
Tipo de programa | IDE | |
Autor | Richard Stallman | |
Desarrollador | Proyecto GNU, Proyecto Emacs[1] | |
Lanzamiento inicial | 1984 | |
Licencia | GNU GPL v3[3] Archivo:Fsfgplv3.png | |
Información técnica | ||
Programado en | ||
Interfaz gráfica predeterminada | ||
Versiones | ||
Última versión estable | 22.3[2] ( 5 de Septiembre de 2008) | |
Enlaces | ||
Emacs es un editor de texto con una gran cantidad de funciones, muy popular entre programadores y usuarios técnicos.
GNU Emacs es parte del proyecto GNU, activamente desarrollado. Es la versión más popular de Emacs. El manual de GNU Emacs lo describe como "un editor extensible, personalizable, auto-documentado y de tiempo real." Es la versión más compatible y portada de las implementaciones de Emacs. La última versión, liberada el 5 de Septiembre de 2008, es la 22.3.[2]
El EMACS original significa, Editor MACroS para el TECO. Fue escrito en 1975 por Richard Stallman junto con Guy Steele. Fue inspirado por las ideas de TECMAC y TMACS, un par de editores TECO-macro escritos por Guy Steele, Dave Moon, Richard Greenblatt, Charles Frankston, y otros. Se han lanzado muchas versiones de EMACS hasta el momento, pero actualmente hay dos que son usadas comúnmente: GNU Emacs, iniciado por Richard Stallman en 1984, y XEmacs, un fork de GNU Emacs, que fue iniciado en 1991. Ambos usan una extensión de lenguaje muy poderosa, Emacs Lisp, que permite manejar tareas distintas, desde escribir y compilar programas hasta navegar en Internet. GNU Emacs es mantenido por el Proyecto GNU Emacs, el cual cuenta entre sus miembros a Richard Stallman[1]
Algunas personas hacen distinción entre la palabra en mayúsculas "Emacs", usada para referirse a versiones derivadas del programa creado por Richard Stallman (particularmente GNU Emacs y XEmacs), y la palabra en minúsculas "emacs", que es usada para referirse al gran número de reimplementaciones de Emacs. La palabra "emacs" es pluralizada frecuentemente en inglés como emacsen por analogía con "oxen". Por ejemplo, el paquete compatible de Emacs para Debian se llama emacsen-common
. El único plural proporcionado por el Collins English Dictionary es emacsen.[4]
En la cultura de Unix, Emacs es uno de los dos principales contendientes en las tradicionales guerras de editores, el otro es vi.
Historia
Emacs nació en los laboratorios del MIT durante los años 70. Antes de su introducción, el editor de textos predeterminado en el Sistema Incompatible de Tiempo Compartido (ITS), el sistema operativo en los laboratorios de Inteligencia Artificial PDP-6 y PDP-10, era un editor de líneas conocido como TECO. A diferencia de los editores de texto modernos, en TECO la introducción de texto, la edición y la vista del mismo se hacía de manera separada, como vi lo haría luego. Los caracteres tecleados no aparecían dentro del documento, había que introducir una serie de instrucciones, en el lenguaje de TECO, indicándole que debía colocar los caracteres requeridos. El texto no se mostraba en la pantalla. Este comportamiento es similar al del programa ed, que todavía se utiliza hoy en día.
Richard Stallman visitó el Laboratorio de Inteligencia Artificial de Stanford en 1974 o 1972 y conoció al editor de textos "E". Escrito por Fred Wright, el editor, tenía un comportamiento intuitivo WYSIWYG (lo que ves es lo que obtienes) como es común en los editores de textos modernos. Impresionado por esta característica, Stallman volvió al MIT donde Carl Mikkelsen, uno de los hackers en el Laboratorio de Inteligencia Artificial, había agregado un modo de edición-muestreo llamado "Control-R" a TECO, que le permitía a la pantalla mostrar lo que el usuario ingresaba desde el teclado. Stallman reimplementó este modo para que corriera eficientemente. Agregó una característica al modo edición-muestreo de TECO, para que el usuario pueda redefinir cualquier atajo de teclado para ejecutar un programa TECO.
Otra característica de E, que no tenía TECO, era corregir el acceso aleatorio. Desde la implementación, el TECO original, fue diseñado para editar papel de cinta en el PDP-1, fue un editor secuencial. La edición típica podía ser llevada a cabo en una página a la vez, en el orden que las páginas aparecen en el archivo.
La nueva versión de TECO fue popular en el Laboratorio de IA, y pronto acumuló una colección de macros, cuyos nombres terminaban en "MAC" o "MACS". Dos años después, Guy Steele unificó una diversidad de macros de teclado en uno solo.
Después de una noche de hacking conjunto por Steele y Stallman, éste acabó la implementación, que incluía utilidades para extender y documentar el nuevo conjunto de macros. El sistema resultante fue llamado EMACS, es decir, "Editing MACroS". Una versión alternativa sostiene que EMACS quería decir "E con MACroS", refiriéndose a la falta de capacidades de macros en E. Según Stallman, él tomó el nombre Emacs "porque <E> no estaba en uso como abreviatura en el ITS en aquel momento". Se ha comentado también que "Emack & Bolio's" era el nombre de una heladería popular en Boston, a poca distancia del MIT. Un programa de formateo de texto usado en ITS fue llamado más tarde BOLIO por Dave Moon, que frecuentaba la heladería. No obstante, a Stallman no le gustaba ese helado, y ni siquiera lo conocía cuando eligió el nombre "Emacs"; esta ignorancia es la base de un Hacker koan, Emacs and Bolio).
Stallman se dio cuenta del peligro que entrañaba demasiadas personalizaciones del programa y las bifurcaciones de facto que podría llegar a suponer, y estableció ciertas condiciones para el uso del programa. Más tarde escribió:
- "EMACS fue distribuido sobre la base de compartición comunitaria, lo cual quiere decir que todas las mejoras deben serme enviadas a mí para que sean incorporadas y distribuidas."
El Emacs original, como el TECO, se ejecutaba únicamente en la familia de ordenadores PDP. Su comportamiento era suficientemente distinto de TECO como para ser considerado un editor de texto por derecho propio. Rápidamente se convirtió en el programa estándar de edición en ITS. También fue portado de ITS al Tenex y a sistemas operativos TOPS-20 por Michael McMahon, pero no a Unix inicialmente. Otros colaboradores en versiones tempranas de Emacs fueron Kent Pitman, Earl Killian y Eugene Ciccarelli.
Otros emacsen
Durante los siguientes años, se escribieron muchos editores similares a Emacs para otros sistemas operativos. Entre ellos SINE (Sine Is Not EMACS), EINE ("Eine Is Not EMACS") y ZWEI ("ZWEI Was EINE Initially", para la máquina Lisp), que fueron escritos por Michael McMahon y Daniel Weinreb (Los nombres EINE y ZWEI significan respectivamente "uno" y "dos" en alemán). En 1978, Bernard Greenberg escribió Multics Emacs en el Cambridge Information Systems Lab de Honeywell.
El primer editor similar a Emacs que funcionó sobre Unix fue el Gosling Emacs, escrito en 1981 por James Gosling (que más tarde inventó el lenguaje de programación Java). Fue escrito en el lenguaje de programación C y utilizaba un lenguaje de extensión conocido como Mocklisp, con sintaxis similar a la del lenguaje Lisp. En 1984 era software propietario.
GNU Emacs
En 1984, Stallman empezó a trabajar en GNU Emacs para producir una alternativa de software libre al Gosling Emacs. Inicialmente se basó en el Gosling Emacs, pero Stallman reemplazó el intérprete de Mocklisp con un intérprete de Lisp, lo que le obligó a sustituir casi todo el código. GNU Emacs se convirtió en el primer programa publicado por el emergente Proyecto GNU.
GNU Emacs está escrito en Emacs Lisp (a su vez implementado en C) como lenguaje de extensión. La primera versión ampliamente distribuida de GNU Emacs fue la 15.34, que apareció en 1985. Las versiones de la 2 a la 12 no existieron nunca. Las primeras versiones habían sido numeradas con la forma "1.x.x", pero antes de la versión 1.12 se decidió quitar el "1" inicial, ya que se pensaba que este número nunca cambiaría. La versión 13, la primera que fue pública, se liberó el 20 de marzo de 1985.
GNU Emacs se ejecutaba en Unix, al igual que Gosling Emacs. No obstante, GNU Emacs tenía más funciones, como por ejemplo, el Lisp (completo) como lenguaje de extensión. Como resultado, pronto reemplazó a Gosling Emacs como editor Emacs de facto sobre Unix.
Hasta 1999, el desarrollo de GNU Emacs fue relativamente cerrado, hasta el punto en que fue utilizado como ejemplo del modelo de desarrollo de "catedral" en La catedral y el bazar. El proyecto ha adoptado desde entonces una lista de correo pública de desarrollo, y acceso anónimo al sistema CVS. El desarrollo tiene lugar en una única rama de CVS, que está actualmente en la versión 22.0.99. La persona encargada actualmente de su mantenimiento es Richard Stallman.
La versión estable actual de GNU Emacs (5 de septiembre de 2008) es la 22.3[1].
XEmacs
A partir de 1991, Jamie Zawinski y otros desarrollaron Lucid Emacs en Lucid Inc., basándose en una versión alfa de GNU Emacs 19. Las dos bases de código divergieron pronto, y los dos equipos de desarrollo desistieron[5]de intentar combinarlas de nuevo en un solo programa. Este fue uno de los más famosos forks de un programa de software libre. Lucid Emacs ha sido renombrado como XEmacs. Éste y GNU Emacs son las dos variedades actuales en uso más populares. La "X" en XEmacs se deriva, bien de un enfoque inicial para soportar el sistema X Window como interfaz gráfica de usuario, o bien un "nombre de compromiso" entre las partes que desarrollaban XEmacs.[2] Tanto GNU Emacs como XEmacs soportan interfaces gráficas y terminales de texto.
Otras implementaciones
GNU Emacs fue inicialmente pensado para computadores con un espacio de direcciones de 32-bit, y al menos 1 MiB de RAM, en una época en la cual esos computadores eran considerados de alta calidad. Esto dejó una puerta abierta para pequeñas reimplementaciones. Algunas destacables se nombran a continuación:
- MicroEMACS, una implementación muy portable originalmente escrita por Dave Conroy y Daniel Lawrence siguió desarrollándola. Este editor es usado por Linus Torvalds.[6]
- MG, originalmente denominado MicroGNUEmacs, un offshoot de MicroEMACS que intenta asemejarse más a GNU Emacs. Ahora viene instalado por defecto en OpenBSD.
- JOVE (Jonathan's Own Version of Emacs), una implementación no-programable de Emacs para sistemas UNIX-like por Jonathan Payne.
- Freemacs, una versión DOS con un lenguaje de extensión basado en text macro expansion, todo dentro del límite de memoria original de 64 KiB.
- Meadow[7] es una variante de Emacs originada en Japón diseñada para operar en Windows. Meadow se focaliza en proveeer soporte multi-lenguaje.
Licencia
Para GNU Emacs (y en general para los paquetes de software GNU), la política sigue consistiendo en aceptar contribuciones significativas de código sólo si el titular del copyright renuncia adecuadamente a sus derechos de copia. No obstante, se hizo una excepción a esta política para el código de MULE (MULtilingual Extension, extensión multilingüe que maneja Unicode y métodos más avanzados de tratar con otros lenguajes), ya que el titular del copyright es el gobierno japonés y la transferencia de copyright no era posible.[8]
Esta política, sin embargo, no se aplica a contribuciones de código extremadamente pequeñas o corrección de fallos. No hay una definición estricta de contribución pequeña, pero a modo de orientación, se considera que sería menos de 10 líneas de código.
Esta política está pensada para facilitar el refuerzo del copyleft, de manera que la FSF pueda defender el software en un juicio, si éste se produjera.
Características
El resto de este artículo trata sobre las versiones modernas de Emacs, es decir, GNU Emacs y XEmacs, las únicas encarnaciones de Emacs que son ampliamente usadas hoy en día. El término "Emacs" se usará para referirse a ambos programas, ya que tienen características muy similares; XEmacs comenzó como un fork de GNU Emacs y sus versiones siguientes se han mantenido más o menos compatibles con GNU Emacs.
A pesar de (o quizás a causa de) su venerable pasado, Emacs es uno de los editores de texto más potentes y versátiles hoy en día. Debe remarcarse que es principalmente un editor de texto, y no un procesador de texto; su enorme conjunto de características está orientado a ayudar el usuario a manipular trozos de texto, más que manipular el tipo de letra de los caracteres o imprimir documentos (aunque Emacs puede también hacer eso). Emacs tiene una gran cantidad de características que permiten lidiar con la aparentemente sencilla tarea de editar texto, que van desde comandos para manipular palabras y párrafos (borrarlos, moverlos, moverse por entre ellos, etc.), hasta resaltado de sintaxis para hacer el código fuente más fácil de leer, o ejecutar "macros de teclado" que contienen lotes de comandos de edición definidos por el usuario.
La rica variedad de características que se encuentran en Emacs es el resultado de su diseño poco habitual. Casi toda la funcionalidad del editor, desde las operaciones básicas de edición (como la inserción de caracteres en un documento) hasta la configuración de la interfaz de usuario, es controlada por un dialecto del lenguaje de programación Lisp. En este entorno Lisp, variables e incluso funciones enteras pueden ser modificadas al vuelo, sin tener que recompilar o ni siquiera reiniciar el editor. Como resultado, el comportamiento de Emacs puede ser modificado casi sin límite, bien directamente por el usuario, o (más habitualmente) cargando fragmentos de código Emacs Lisp. Estos fragmentos son conocidos como "librerías", "bibliotecas", "paquetes" o "extensiones".
Emacs contiene un gran número de librerías escritas en Emacs Lisp, y en Internet se pueden encontrar más librerías de terceras partes. Muchas librerías implementan ayudas para la programación de ordenadores, lo que es un reflejo de la popularidad de Emacs entre los programadores. Emacs se puede usar como un entorno de desarrollo integrado (IDE), que permite a los programadores editar, compilar y depurar su código con una única interfaz. Otras librerías realizan funciones menos habituales. A continuación se enumeran varios ejemplos:
- Calc, una potente calculadora numérica.
- Calendar-mode, para guardar calendarios y diarios de citas.
- Doctor, una implementación de ELIZA que realiza psicoterapia rogeriana.
- Dunnet, una aventura conversacional.
- Ediff, para trabajar con ficheros diff de forma interactiva.
- Emerge, para comparar ficheros y combinarlos.
- Emacs/W3, un navegador web.
- ERC, un cliente IRC.
- Gnus, un completo lector de grupos de noticias y de correo electrónico.
- MULE, MultiLingual extensions to Emacs, extensiones multilingües para Emacs. Permite la edición de texto escrito en múltiples lenguajes, más o menos análogo a Unicode.
- Info, un navegador de ayuda en línea.
- Emacs-wiki, software de wiki para Emacs basado en Lisp.
- Planner, un gestor de información personal para Emacs.
- Tetris
- Pong
El problema del diseño de Emacs, basado en Lisp, es una penalización de rendimiento resultante del hecho de cargar e interpretar el código Lisp. En los sistemas donde fue implementado en primer lugar, Emacs era a menudo mucho más lento que otros editores de texto. Algunos acrónimos bromistas aluden a este hecho: Eight Megabytes And Constantly Swapping (de los días en que ocho megabytes era mucha memoria), Emacs Makes A Computer Slow, Eventually Mallocs All Computer Storage, y Eventually Makes All Computers Sick. No obstante, los ordenadores modernos son suficientemente rápidos, de manera que Emacs raramente se nota lento. De hecho, Emacs se inicia más rápidamente que la mayoría de procesadores de texto modernos. Otros acrónimos de broma describen la interfaz de usuario: Escape Meta Alt Control Shift.
Plataformas
Emacs es uno de los programas de ordenador no triviales más portados a otras plataformas. Se ejecuta en una amplia variedad de sistemas operativos, entre ellos los sistemas de tipo Unix (GNU/Linux, BSD, Solaris, AIX, IRIX), Mac OS X,[9] [10] etc., MS-DOS, Microsoft Windows [11][12][13] y OpenVMS. Los sistemas Unix, tanto libres como propietarios, proporcionan frecuentemente Emacs junto con el sistema operativo.
Emacs se ejecuta tanto en entornos de terminal de texto como en entornos de interfaz gráfica de usuario (GUI). Emacs utiliza el Sistema X Window para generar su GUI, ya sea directamente, o bien usando un "widget toolkit" como Motif, LessTif o GTK+. Emacs puede usar también los sistemas gráficos nativos de Mac OS X (utilizando la API Carbon) y de Microsoft Windows. La interfaz gráfica proporciona barras de menú, barras de herramientas, barras de scroll y menús contextuales.
Modos de edición
Emacs adapta su comportamiento al tipo de texto que está editando mediante modos de edición llamados "modos mayores" ("major modes"). Los modos mayores se definen para textos de texto ordinario, código fuente para diversos lenguajes de programación, documentos HTML, TeX y LaTeX y muchos otros tipos de texto. Cada modo mayor modifica ciertas variables en Lisp para que Emacs se comporte de forma más conveniente para ese tipo concreto de texto. Habitualmente, definen las tablas para resaltado de sintaxis, usando distintos tipos de letra o colores para mostrar las palabras clave, comentarios, etc. Los modos mayores también ofrecen comandos especiales de edición. Por ejemplo, los modos mayores para lenguajes de programación definen habitualmente comandos para saltar al principio o al final de una función.
El comportamiento de Emacs puede ser más personalizado aún utilizando los "modos menores" ("minor modes"). Mientras que sólo se puede asociar un modo mayor con un buffer a la vez, se puede tener activos varios modos menores. Por ejemplo, el modo mayor para el lenguaje de programación C define un modo menor diferente para cada uno de los estilos de indentación más populares.
Personalización
Muchos usuarios de Emacs personalizan el editor para adaptarlo a sus necesidades. Hay tres formas principales de personalizar Emacs. La primera es la extensión customize, que permite que el usuario asigne valores a variables comunes de personalización, como el esquema de color, usando una interfaz gráfica. Esto está orientado a principiantes en Emacs que no quieren trabajar con código en Emacs Lisp.
La segunda forma es registrar pulsaciones de teclados en macros y reproducirlas para automatizar tareas complejas y repetitivas. Esto se suele hacer de forma ad-hoc, descartando cada macro tras su uso, aunque las macros pueden ser guardadas e invocadas cuando se necesiten.
El tercer método para personalizar Emacs es usar Emacs Lisp. Habitualmente, el código Emacs Lisp proporcionado por el usuario se guarda en un fichero llamado .emacs
, que se carga cuando Emacs comienza. El fichero .emacs
se usa con frecuencia para asignar a variables y atajos de teclado valores distintos de la configuración por defecto, y para definir nuevos comandos para el usuario. Muchos usuarios avanzados tienen ficheros .emacs
de ciento de líneas, con personalizaciones que hacen que Emacs funcione de forma muy diferente del comportamiento por defecto.
Si un fragmento de código Emacs Lisp es útil en general, a menudo se empaqueta en forma de librería y se distribuye a otros usuarios. Muchas librerías de terceras partes se pueden encontrar en Internet. Por ejemplo, una librería llamada wikipedia-mode para editar artículos de Wikipedia. Hay incluso un grupo de noticias de Usenet, gnu.emacs.sources, usado para enviar nuevas librerías. Algunas librerías externas pueden convertirse en una librería "estándar" de Emacs.
Documentación
El primer Emacs incluía una potente librería de ayuda que podía mostrar la documentación para cada comando, variable y función interna (es posible que haya originado esta técnica) A causa de esto, Emacs fue calificado de "programa autodocumentado". Este término no significa que Emacs escriba su propia documentación, sino que presenta su propia documentación al usuario. Esta característica hace que la documentación de Emacs sea muy accesible. Por ejemplo, el usuario puede averiguar qué comando está asociado a una combinación de teclas introduciendo simplemente C-h k
(que invoca al comando describe-key
), seguido de la combinación de teclas. Cada función incluía una cadena de documentación, pensada específicamente para ser mostrada al usuario en caso que éste lo pidiera. Esta práctica se extendió posteriormente a varios lenguajes de programación, como Lisp y Java.
El sistema de ayuda de Emacs es útil no sólo para principiantes, sino también para usuarios avanzados que escriban código en Emacs Lisp. Si la documentación para una función o variable no es suficiente, el sistema de ayuda puede ser utilizado para navegar entre el código fuente de Emacs Lisp, tanto para librerías predefinidas como para librerías externas instaladas. Por tanto, es muy conveniente programar en Emacs Lisp usando el mismo Emacs.
Además de la documentación incluida en el programa, Emacs tiene un manual especialmente largo, detallado y bien escrito. Una copia electrónica del Manual de GNU Emacs, escrita por Richard Stallman, se incluye con GNU Emacs y se puede ver con el navegador de Info predeterminado. XEmacs tiene un manual parecido, que se bifurcó del Manual de GNU Emacs al mismo tiempo que el programa XEmacs. Otros dos manuales, el Emacs Lisp Reference Manual (Manual de Referencia de Emacs Lisp), por Bill Lewis, Richard Stallman y Dan Laliberte, y Programming in Emacs Lisp (Programando en Emacs Lisp) por Robert Chassell, se incluyen también. Además de las versiones electrónicas, los tres manuales están disponibles en forma de libro, publicado por la Free Software Foundation.
Emacs también tiene un tutorial. Cuando Emacs se inicia sin especificar ningún fichero para editar, muestra instrucciones para ejecutar comandos simples de edición y para invocar el tutorial.
Internacionalización
Emacs soporta la edición de texto escrito en muchos lenguajes humanos. Hay soporte para muchos alfabetos, guiones, sistemas de escritura y convenciones culturales. Emacs proporciona revisión ortográfica para muchos lenguajes mediante la llamada a programas externos como ispell. Muchos sistemas de codificación están soportados, como por ejemplo UTF-8. La versión 21.5 de XEmacs tiene soporte parcial para Unicode. La versión 21.4 de GNU Emacs tiene un soporte similar. Emacs 22 tendrá mejor soporte. Todos estos esfuerzos para soportar Unicode utilizan una codificación interna específica de Emacs, con lo cual se necesita una conversión para cargar y guardar. UTF-8 será el sistema de codificación interna de Emacs en una versión futura de XEmacs 21.5, y seguramente en GNU Emacs 23.
No obstante, la interfaz de usuario de Emacs está en inglés y no ha sido traducida a otros lenguajes, con la excepción del tutorial para principiantes.
Para usuarios con deficiencias visuales, hay un subsistema llamado Emacspeak que permite que el editor sea usado únicamente mediante una interfaz de audio.
Licencia
El código fuente del programa, que incluye tanto los componentes en lenguaje C como en Emacs Lisp, está disponible libremente para su examen, modificación y redistribución, bajo los términos de la Licencia pública general de GNU (GNU GPL). Las versiones más antiguas de la documentación de GNU Emacs fueron liberadas bajo una licencia ad-hoc que requería la inclusión de ciertos textos en cualquier copia modificada. En el manual de usuario de GNU Emacs, por ejemplo, esto incluía la forma de obtener GNU Emacs y el ensayo político de Richard Stallman, "The GNU Manifesto". Los manuales de XEmacs, que fueron heredados de los antiguos manuales de GNU Emacs cuando el fork tuvo lugar, tienen la misma licencia. En cambio, las versiones más modernas de la documentación de GNU Emacs usan la licencia GFDL y usan "secciones invariantes" para requerir la inclusión de los mismos documentos, y también que los manuales se autoproclamen como Manuales GNU.
Uso de Emacs
Comandos
Desde el shell de Unix, un fichero se puede abrir para ser editado escribiendo "emacs [nombre del fichero]". Si el fichero cuyo nombre se ha introducido no existe, se creará un nuevo fichero con este nombre. Por ejemplo, escribiendo "emacs xorg.conf" se editará el fichero xorg.conf en el directorio actual, si existe. No obstante, la documentación de Emacs recomienda iniciar el programa sin introducir un nombre de fichero, para evitar el mal hábito de iniciar un proceso separado para cada fichero a editar. La manera de sacarle partido completamente a Emacs es abrir todos los ficheros desde una única instancia del programa.
En el modo de edición normal, Emacs se comporta como otros editores de texto: Las teclas de caracteres (a, b, c, 1, 2, 3, etc.) sirven para insertar los caracteres correspondientes, las teclas de flecha mueven el punto de edición, la tecla backspace borra texto, etc. Otros comandos pueden ser invocados mediante teclas modificadoras, presionando Control o Meta (equivalente a la actual tecla Alt) o ambas, junto con otra tecla. Cada comando de edición es en realidad una llamada a una función en el entorno de Emacs Lisp. Incluso un comando tan simple como escribir a
para insertar el carácter a implica una llamada a una función. En este caso, la función sería self-insert-command
.
Más abajo se muestran algunos de los comandos básicos. Se pueden encontrar más en la lista de comandos de Emacs. La tecla de control se representa con una C mayúscula y la tecla de alternativa (Alt) o meta se representa con una M mayúscula.
Comando | Tecla | Descripción |
---|---|---|
forward-word |
M-f |
Avanzar una palabra. |
search-word |
C-s |
Buscar una palabra en el buffer. |
undo |
C-/ |
Deshacer el último cambio, y cambios anteriores si se pulsa repetidamente. |
keyboard-quit |
C-g |
Abortar el comando actual. |
fill-paragraph |
M-q |
Wrap text in ("fill") a paragraph. |
find-file |
C-x C-f |
Visitar un fichero (del cual se especifica el nombre) en su propio buffer de edición. |
save-buffer |
C-x C-s |
Guardar el buffer de edición actual en su fichero visitado. |
save-with-newname |
C-x C-w |
Guardar el buffer de edición actual como fichero cuyo nombre se ha de especificar. |
save-buffers-kill-emacs |
C-x C-c |
Preguntar al usuario si se quieren guardar los cambios, y después salir de Emacs. |
set-marker |
C-[space]/C-@ |
Colocar un marcador en el lugar donde se quiere cortar o copiar. |
cut |
C-w |
Cortar todo el texto entre el marcador y el cursor. |
copy |
M-w |
Copiar todo el texto entre el marcador y el cursor. |
paste |
C-y |
Pegar texto del portapapeles de Emacs. |
kill buffer |
C-x k |
Cerrar el buffer actual. |
Los comandos save-buffer
y save-buffers-kill-emacs
usan el presionado de teclas múltiple. Por ejemplo, C-x C-c
significa: mientras se mantiene presionada la tecla control, presionar x; mientras se mantiene presionada la tecla control, presionar c. Esta técnica, permite tener más comandos para el teclado, que cuando se utiliza el presionado simple de teclas, esta metodología fue popularizado por Emacs, proveniente desde TECMAC, una de las colecciones macro de TECO, predecesor de Emacs. Desde entonces ha sido una característica, inclusive hasta en redactores modernos de código como Visual Studio.
Cuando Emacs está ejecutando una interface gráfica, muchos comandos se pueden invocar desde el menú principal o la barra de herramientas en vez de utilizar el teclado. Sin embargo, muchos usuarios experimentados de Emacs prefieren utilizar el teclado porque es más rápido y conveniente una vez que las secuencias de teclas se han memorizado.
Algunos comandos Emacs trabajan mediante la invocación de programas externos (tal como ispell para la comprobación de ortografía o gcc para la compilación de programas), analizando la salida del programa, y mostrando el resultado en Emacs.
El Minibuffer
El minibuffer, normalmente la línea inferior de la pantalla, es el espacio en el que Emacs pide información. En el minibuffer se puede introducir el texto que se debe encontrar en una búsqueda, el nombre de un fichero para leer o guardar e información similar. Cuando es aplicable, es posible utilizar el completado mediante la tecla del tabulador (tab completion).
Gestión de ficheros y visualización
Emacs mantiene texto en objetos denominados buffers. El usuario puede crear nuevos buffers y destruir los indeseados, y pueden existir al mismo tiempo varios buffers. La mayoría de los buffers contienen información cargada desde archivos de texto binarios, que el usuario puede editar y guardar de nuevo a disco. Los buffers se usan también para almacenar texto temporal, como las cadenas de documentación mostradas por la librería help.
Tanto en modo de terminal de texto como en modo gráfico, Emacs es capaz de dividir el área de edición en secciones separadas (a las cuales se refiere como "ventanas" desde el año 1975, lo cual puede resultar confuso en sistemas con otro concepto de "ventana"), de forma que más de un buffer pueda ser mostrado a la vez. Esto tiene muchos posibles usos. Por ejemplo, una sección puede ser utilizada para mostrar el código fuente de un programa, mientras que otra muestra los resultados de compilar ese programa. En entornos gráficos, Emacs puede lanzar también múltiples ventanas gráficas, conocidas como "marcos" ("frames") en la terminología propia de Emacs.
Referencias
- ↑ a b savannah.gnu.org emacs - Summary: Project Memberlist (en inglés).
- ↑ a b Chong Yidong. (5 September 2008) Emacs 22.3 released GNU Project. (en inglés)
- ↑ savannah.gnu.org emacs - Summary
- ↑ Thomas Widmann (2005-06-13). ""Emacs" defined in Collins English Dictionary". comp.emacs. (Google Groups). URL accedida el 2006-09-27.
- ↑ Stephen J., Turnbull. «XEmacs vs. GNU Emacs». Consultado el 27 de septiembre de 2006.
- ↑ Jarosław Rzeszótko. (16 October 2006) Stiff asks, great programmers answer (en inglés)
- ↑ Meadow: Multilingual enhancement to gnu Emacs with ADvantages Over Windows (en inglés)
- ↑ Richard Stallman. (27 Sep 2000) VM and the FSF (en inglés)
- ↑ «Carbon Emacs Package». Consultado el 27 de septiembre de 2006.
- ↑ «Aquamacs es un Emacs para Mac OS X, sencillo de usar». Consultado el 27 de septiembre de 2006.
- ↑ B, Ramprasad (24 de junio de 2005). «GNU Emacs FAQ For Windows 95/98/ME/NT/XP and 2000». Consultado el 27 de septiembre de 2006.
- ↑ Borgman, Lennart (2006). «EmacsW32 Home Page». Consultado el 27 de septiembre de 2006.
- ↑ «GNU Emacs on Windows». Franz Inc. 2006. Consultado el 27 de septiembre de 2006.
Bibliografía
- Ciccarelli, Eugene (1978). An Introduction to the Emacs Editor. Cambridge, Massachusetts: MIT Artificial Intelligence Laboratory. AIM-447. PDF HTML
- Stallman, Richard M. (1979, updated 1981). EMACS: The Extensible, Customizable, Self-Documenting Display Editor. Cambridge Massachusetts: MIT Artificial Intelligence Laboratory. AIM-519A. PDF HTML
- Stallman, Richard M (2002). GNU Emacs Manual (15th edition edición). GNU Press. ISBN 1-882114-85-X.
- Chassel, Robert J. (2004). An Introduction to Programming in Emacs Lisp. GNU Press. ISBN 1-882114-56-6.
- Glickstein, Bob (1997 (April)). Writing GNU Emacs Extensions. O'Reilly & Associates. 1-56592-261-1.
- Cameron, Debra; Elliott, James; Loy, Marc (2004 (December)). Learning GNU Emacs, 3rd Edition. O'Reilly & Associates. ISBN 0-596-00648-9.
- Greenberg, Bernard S. (1979). "Multics Emacs: The History, Design and Implementation".
- Finseth, Craig A. (1991). The Craft of Text Editing -or- Emacs for the Modern World. Springer-Verlag & Co. ISBN 978-1-4116-8297-9.
- Zawinski, Jamie (21 de junio de 2005). «Emacs Timeline». Consultado el 30 de septiembre de 2006.
Véase también
- Portal:Software Libre. Contenido relacionado con Heckert GNU white.svg.
- GNU TeXmacs
- Lista de programas para Unix
Enlaces externos
- The GNU Emacs homepage (en inglés)
- Lista de modificaciones de Emacs (inglés)
- Lista de implementaciones de Emacs (inglés)