fbpx
Wikipedia

Emacs

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 y la versión más popular de Emacs con una gran actividad en su desarrollo. El manual de GNU Emacs lo describe como «un editor extensible, personalizable, auto-documentado y de tiempo real».

Emacs
Parte de editor de texto

GNU Emacs 24.3.1
Información general
Tipo de programa editor de texto, IDE
Autor
Desarrollador Proyecto GNU, Proyecto Emacs[1]
Modelo de desarrollo software libre
Lanzamiento inicial 1976
Licencia GPL v3[2]
Idiomas Múltiples
Información técnica
Programado en C, Emacs Lisp
Plataformas admitidas
Versiones
Última versión estable 27.2 (info) 25 de marzo de 2021 (4 meses y 11 días)
Enlaces
GNU Sitio web oficial

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. GNU Emacs está implementado como un intérprete de Emacs Lisp escrito en C, al cual se ha extendido con funciones en Lisp para editar texto; por lo que casi todo el código de Emacs se puede modificar o extender en tiempo real. Esto ha permitido extender GNU Emacs con paquetes para cubrir toda clase de actividad que involucre texto: desde escribir, compilar o ejecutar interactivamente programas para varios lenguajes de computadora, hasta revisar correo electrónico, chatear o navegar en Internet.

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 implementaciones 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.[3]

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 en modo texto, ejecutado en la línea de comandos sin modo gráfico.

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 1972 o 1974 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 un editor secuencial, diseñado para editar cinta de papel perforada en el PDP-1. 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, este 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

 
GNU Emacs editando un artículo de Wikipedia.

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 23.4.1. La persona encargada actualmente de su mantenimiento es Richard Stallman.[cita requerida]

XEmacs

 
Captura de pantalla de 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[4]​ 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. Este 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.[5]​ 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 proveer 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 solamente 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 este 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 "bibliotecas", "librerías", "paquetes" o "extensiones".

Emacs contiene un gran número de bibliotecas escritas en Emacs Lisp, y en Internet se pueden encontrar más bibliotecas de terceras partes. Muchas bibliotecas 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 bibliotecas 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.
  • Dired, potente y extensible administrador de archivos, de interfaz parecida a Midnight Commander.
  • 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 hacen alusión al uso de teclas modificadoras para acceder a funcionalidades avanzadas: 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 de ventanas X 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 principales" ("major modes"). Los modos principales se definen para 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 principales también ofrecen comandos especiales de edición. Por ejemplo, los modos principales 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 solamente 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 sangría 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 cientos 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 biblioteca y se distribuye a otros usuarios. Muchas bibliotecas de terceras partes se pueden encontrar en Internet. Por ejemplo, una biblioteca llamada Wikipedia-mode para editar artículos de Wikipedia. Hay incluso un grupo de noticias de Usenet, gnu.emacs.sources (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última)., usado para enviar nuevas bibliotecas. Algunas bibliotecas externas pueden convertirse en una biblioteca "estándar" de Emacs.

Documentación

El primer Emacs incluía una potente biblioteca 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 este 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 solamente 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 bibliotecas predefinidas como para bibliotecas 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 idiomas, con la excepción del tutorial para principiantes. De modo no oficial, existen varios proyectos de traducción de la documentación de GNU Emacs, así como un proyecto de internacionalización y localización completas de GNU Emacs al español (véanse los enlaces).

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, "El Manifesto de GNU". 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 interfaz 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 biblioteca 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.

El meñique de Emacs

Debido a que Emacs requiere un uso frecuente de las teclas modificadoras (y en particular, de la tecla Control, la cual normalmente se pulsa con el meñique), muchos usuarios asiduos de Emacs sufren lesiones por esfuerzo repetitivo, las cuales se manifiestan como molestias y dolor en los dedos meñiques. Este problema es tan frecuente que ha llegado a conocerse entre la comunidad de usuarios como el meñique de Emacs.

Una solución común consiste en intercambiar las funciones de las teclas Control y Caps Lock en la parte izquierda del teclado, o definir ambas teclas como Control.[14]​ También existen teclados especiales (Kinesis Contoured Keyboard) que colocan las teclas modificadoras en una posición en la que pueden ser fácilmente pulsadas con el pulgar, o con teclas modificadoras de gran tamaño en una posición en la que se puedan pulsar con la palma de la mano (Microsoft Natural Keyboard).

Cultura

La Iglesia de Emacs

 
Richard Stallman - Preliminares 2013

La "Iglesia de Emacs" formada por Richard Stallman es una parodia sobre una religión para los usuarios de Emacs. En esa se refiere a Vi como el "editor de la bestia" (vi-vi-vi que sería 6-6-6 en numeración romana) pero esto no quiere decir que se esté en contra del uso de Vi (se dice que usar una versión libre de vi es solo una penitencia).

Stallman, también, encarna a un santo de la iglesia de Emacs que tiene el nombre de San Ignucio, el cual usa un antiguo disco duro como aureola.

Véase también

Referencias

  1. savannah.gnu.org emacs - Project Memberlist (en inglés)
  2. savannah.gnu.org emacs - Summary
  3. Thomas Widmann (13 de junio de 2005). «"Emacs" defined in Collins English Dictionary». comp.emacs. Consultado el 27 de septiembre de 2006. 
  4. Stephen J., Turnbull. «XEmacs vs. GNU Emacs». Consultado el 27 de septiembre de 2006. 
  5. [1]
  6. Jarosław Rzeszótko. (16 de Octubre de 2006) Stiff asks, great programmers answer el 8 de noviembre de 2006 en Wayback Machine. (en inglés)
  7. (en inglés)
  8. Richard Stallman. (27 de Septiembre de 2000) VM and the FSF (en inglés)
  9. . Archivado desde el original el 25 de enero de 2006. Consultado el 27 de septiembre de 2006. 
  10. «Aquamacs es un Emacs para Mac OS X, sencillo de usar». Consultado el 27 de septiembre de 2006. 
  11. 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. 
  12. Borgman, Lennart (2006). . Archivado desde el original el 6 de marzo de 2007. Consultado el 27 de septiembre de 2006. 
  13. «GNU Emacs on Windows». Franz Inc. 2006. Consultado el 27 de septiembre de 2006. 
  14. «How To Avoid The Emacs Pinky Problem». Xahlee.org. Consultado el 22 de julio de 2011. 

Bibliografía

  • Ciccarelli, Eugene (1978). An Introduction to the Emacs Editor. Cambridge, Massachusetts: MIT Artificial Intelligence Laboratory. AIM-447.  PDF (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). HTML
  • Stallman, Richard M. (1979, updated 1981). EMACS: The Extensible, Customizable, Self-Documenting Display Editor. Cambridge Massachusetts: MIT Artificial Intelligence Laboratory. AIM-519A.  PDF (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). HTML
  • Stallman, Richard M (2002). GNU Emacs Manual (15th edition edición). GNU Press. ISBN 1-882114-85-X. 
  • Chassel, Robert J. (2004). . GNU Press. ISBN 1-882114-56-6. Archivado desde el original el 22 de enero de 2007. Consultado el 21 de enero de 2007. 
  • 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). . Springer-Verlag & Co. ISBN 978-1-4116-8297-9. Archivado desde el original el 23 de diciembre de 2012. Consultado el 21 de enero de 2007. 
  • Zawinski, Jamie (21 de junio de 2005). «Emacs Timeline». Consultado el 30 de septiembre de 2006. 

Enlaces externos

  •   Wikimedia Commons alberga una categoría multimedia sobre Emacs.
  • The GNU Emacs homepage (en inglés)
  • Wikemacs (en inglés)
  • Lista de modificaciones de Emacs (en inglés)
  •   Datos: Q189722
  •   Multimedia: Emacs

emacs, para, computador, macintosh, véase, emac, editor, texto, gran, cantidad, funciones, popular, entre, programadores, usuarios, técnicos, parte, proyecto, versión, más, popular, gran, actividad, desarrollo, manual, describe, como, editor, extensible, perso. Para el computador Macintosh vease eMac Emacs es un editor de texto con una gran cantidad de funciones muy popular entre programadores y usuarios tecnicos GNU Emacs es parte del proyecto GNU y la version mas popular de Emacs con una gran actividad en su desarrollo El manual de GNU Emacs lo describe como un editor extensible personalizable auto documentado y de tiempo real EmacsParte de editor de textoGNU Emacs 24 3 1Informacion generalTipo de programaeditor de texto IDEAutorRichard StallmanGuy L Steele Jr David MoonDesarrolladorProyecto GNU Proyecto Emacs 1 Modelo de desarrollosoftware libreLanzamiento inicial1976LicenciaGPL v3 2 IdiomasMultiplesInformacion tecnicaProgramado enC Emacs LispPlataformas admitidasPDP 10DECSYSTEM 20VersionesUltima version estable27 2 info 25 de marzo de 2021 4 meses y 11 dias EnlacesGNU Sitio web oficial editar datos en Wikidata 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 comunmente GNU Emacs iniciado por Richard Stallman en 1984 y XEmacs un fork de GNU Emacs que fue iniciado en 1991 GNU Emacs esta implementado como un interprete de Emacs Lisp escrito en C al cual se ha extendido con funciones en Lisp para editar texto por lo que casi todo el codigo de Emacs se puede modificar o extender en tiempo real Esto ha permitido extender GNU Emacs con paquetes para cubrir toda clase de actividad que involucre texto desde escribir compilar o ejecutar interactivamente programas para varios lenguajes de computadora hasta revisar correo electronico chatear o navegar en Internet Algunas personas hacen distincion entre la palabra en mayusculas Emacs usada para referirse a versiones derivadas del programa creado por Richard Stallman particularmente GNU Emacs y XEmacs y la palabra en minusculas emacs que es usada para referirse al gran numero de implementaciones de Emacs La palabra emacs es pluralizada frecuentemente en ingles como emacsen por analogia con oxen Por ejemplo el paquete compatible de Emacs para Debian se llama emacsen common El unico plural proporcionado por el Collins English Dictionary es emacsen 3 En la cultura de Unix Emacs es uno de los dos principales contendientes en las tradicionales guerras de editores el otro es vi Indice 1 Historia 1 1 Otros emacsen 1 2 GNU Emacs 1 3 XEmacs 1 4 Otras implementaciones 2 Licencia 3 Caracteristicas 4 Plataformas 4 1 Modos de edicion 4 2 Personalizacion 4 3 Documentacion 4 4 Internacionalizacion 5 Licencia 6 Uso de Emacs 6 1 Comandos 6 2 El Minibuffer 6 3 Gestion de ficheros y visualizacion 6 4 El menique de Emacs 7 Cultura 7 1 La Iglesia de Emacs 8 Vease tambien 9 Referencias 10 Bibliografia 11 Enlaces externosHistoria Editar Emacs en modo texto ejecutado en la linea de comandos sin modo grafico Emacs nacio en los laboratorios del MIT durante los anos 70 Antes de su introduccion 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 lineas conocido como TECO A diferencia de los editores de texto modernos en TECO la introduccion de texto la edicion y la vista del mismo se hacia de manera separada como Vi lo haria luego Los caracteres tecleados no aparecian dentro del documento habia que introducir una serie de instrucciones en el lenguaje de TECO indicandole que debia colocar los caracteres requeridos El texto no se mostraba en la pantalla Este comportamiento es similar al del programa ed que todavia se utiliza hoy en dia Richard Stallman visito el Laboratorio de Inteligencia Artificial de Stanford en 1972 o 1974 y conocio al editor de textos E Escrito por Fred Wright el editor tenia un comportamiento intuitivo WYSIWYG lo que ves es lo que obtienes como es comun en los editores de textos modernos Impresionado por esta caracteristica Stallman volvio al MIT donde Carl Mikkelsen uno de los hackers en el Laboratorio de Inteligencia Artificial habia agregado un modo de edicion muestreo llamado Control R a TECO que le permitia a la pantalla mostrar lo que el usuario ingresaba desde el teclado Stallman reimplemento este modo para que corriera eficientemente Agrego una caracteristica al modo edicion muestreo de TECO para que el usuario pueda redefinir cualquier atajo de teclado para ejecutar un programa TECO Otra caracteristica de E que no tenia TECO era corregir el acceso aleatorio Desde la implementacion el TECO original fue un editor secuencial disenado para editar cinta de papel perforada en el PDP 1 La edicion tipica podia ser llevada a cabo en una pagina a la vez en el orden que las paginas aparecen en el archivo La nueva version de TECO fue popular en el Laboratorio de IA y pronto acumulo una coleccion de macros cuyos nombres terminaban en MAC o MACS Dos anos despues Guy Steele unifico una diversidad de macros de teclado en uno solo Despues de una noche de hacking conjunto por Steele y Stallman este acabo la implementacion que incluia utilidades para extender y documentar el nuevo conjunto de macros El sistema resultante fue llamado EMACS es decir Editing MACroS Una version alternativa sostiene que EMACS queria decir E con MACroS refiriendose a la falta de capacidades de macros en E Segun Stallman el tomo el nombre Emacs porque lt E gt no estaba en uso como abreviatura en el ITS en aquel momento Se ha comentado tambien que Emack amp Bolio s era el nombre de una heladeria popular en Boston a poca distancia del MIT Un programa de formateo de texto usado en ITS fue llamado mas tarde BOLIO por Dave Moon que frecuentaba la heladeria No obstante a Stallman no le gustaba ese helado y ni siquiera lo conocia cuando eligio el nombre Emacs esta ignorancia es la base de un Hacker koan Emacs and Bolio Stallman se dio cuenta del peligro que entranaba demasiadas personalizaciones del programa y las bifurcaciones de facto que podria llegar a suponer y establecio ciertas condiciones para el uso del programa Mas tarde escribio EMACS fue distribuido sobre la base de comparticion comunitaria lo cual quiere decir que todas las mejoras deben serme enviadas a mi para que sean incorporadas y distribuidas El Emacs original como el TECO se ejecutaba unicamente en la familia de ordenadores PDP Su comportamiento era suficientemente distinto de TECO como para ser considerado un editor de texto por derecho propio Rapidamente se convirtio en el programa estandar de edicion en ITS Tambien 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 Editar Durante los siguientes anos 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 maquina Lisp que fueron escritos por Michael McMahon y Daniel Weinreb Los nombres EINE y ZWEI significan respectivamente uno y dos en aleman En 1978 Bernard Greenberg escribio Multics Emacs en el Cambridge Information Systems Lab de Honeywell El primer editor similar a Emacs que funciono sobre Unix fue el Gosling Emacs escrito en 1981 por James Gosling que mas tarde invento el lenguaje de programacion Java Fue escrito en el lenguaje de programacion C y utilizaba un lenguaje de extension conocido como Mocklisp con sintaxis similar a la del lenguaje Lisp En 1984 era software propietario GNU Emacs Editar GNU Emacs editando un articulo de Wikipedia En 1984 Stallman empezo a trabajar en GNU Emacs para producir una alternativa de software libre al Gosling Emacs Inicialmente se baso en el Gosling Emacs pero Stallman reemplazo el interprete de Mocklisp con un interprete de Lisp lo que le obligo a sustituir casi todo el codigo GNU Emacs se convirtio en el primer programa publicado por el emergente Proyecto GNU GNU Emacs esta escrito en Emacs Lisp a su vez implementado en C como lenguaje de extension La primera version ampliamente distribuida de GNU Emacs fue la 15 34 que aparecio en 1985 Las versiones de la 2 a la 12 no existieron nunca Las primeras versiones habian sido numeradas con la forma 1 x x pero antes de la version 1 12 se decidio quitar el 1 inicial ya que se pensaba que este numero nunca cambiaria La version 13 la primera que fue publica se libero el 20 de marzo de 1985 GNU Emacs se ejecutaba en Unix al igual que Gosling Emacs No obstante GNU Emacs tenia mas funciones como por ejemplo el Lisp completo como lenguaje de extension Como resultado pronto reemplazo 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 publica de desarrollo y acceso anonimo al sistema CVS El desarrollo tiene lugar en una unica rama de CVS que esta actualmente en la version 23 4 1 La persona encargada actualmente de su mantenimiento es Richard Stallman cita requerida XEmacs Editar Articulo principal XEmacs Captura de pantalla de XEmacs A partir de 1991 Jamie Zawinski y otros desarrollaron Lucid Emacs en Lucid Inc basandose en una version alfa de GNU Emacs 19 Las dos bases de codigo divergieron pronto y los dos equipos de desarrollo desistieron 4 de intentar combinarlas de nuevo en un solo programa Este fue uno de los mas famosos forks de un programa de software libre Lucid Emacs ha sido renombrado como XEmacs Este y GNU Emacs son las dos variedades actuales en uso mas populares La X en XEmacs se deriva bien de un enfoque inicial para soportar el sistema X Window como interfaz grafica de usuario o bien un nombre de compromiso entre las partes que desarrollaban XEmacs 5 Tanto GNU Emacs como XEmacs soportan interfaces graficas y terminales de texto Otras implementaciones Editar GNU Emacs fue inicialmente pensado para computadores con un espacio de direcciones de 32 bit y al menos 1 MiB de RAM en una epoca en la cual esos computadores eran considerados de alta calidad Esto dejo una puerta abierta para pequenas reimplementaciones Algunas destacables se nombran a continuacion MicroEMACS una implementacion muy portable originalmente escrita por Dave Conroy y Daniel Lawrence siguio desarrollandola Este editor es usado por Linus Torvalds 6 MG originalmente denominado MicroGNUEmacs un offshoot de MicroEMACS que intenta asemejarse mas a GNU Emacs Ahora viene instalado por defecto en OpenBSD JOVE Jonathan s Own Version of Emacs una implementacion no programable de Emacs para sistemas UNIX like por Jonathan Payne Freemacs una version DOS con un lenguaje de extension basado en text macro expansion todo dentro del limite de memoria original de 64 KiB Meadow 7 es una variante de Emacs originada en Japon disenada para operar en Windows Meadow se focaliza en proveer soporte multi lenguaje Licencia EditarPara GNU Emacs y en general para los paquetes de software GNU la politica sigue consistiendo en aceptar contribuciones significativas de codigo solamente si el titular del copyright renuncia adecuadamente a sus derechos de copia No obstante se hizo una excepcion a esta politica para el codigo de MULE MULtilingual Extension extension multilingue que maneja Unicode y metodos mas avanzados de tratar con otros lenguajes ya que el titular del copyright es el gobierno japones y la transferencia de copyright no era posible 8 Esta politica sin embargo no se aplica a contribuciones de codigo extremadamente pequenas o correccion de fallos No hay una definicion estricta de contribucion pequena pero a modo de orientacion se considera que seria menos de 10 lineas de codigo Esta politica esta pensada para facilitar el refuerzo del copyleft de manera que la FSF pueda defender el software en un juicio si este se produjera Caracteristicas EditarEl resto de este articulo trata sobre las versiones modernas de Emacs es decir GNU Emacs y XEmacs las unicas encarnaciones de Emacs que son ampliamente usadas hoy en dia El termino Emacs se usara para referirse a ambos programas ya que tienen caracteristicas muy similares XEmacs comenzo como un fork de GNU Emacs y sus versiones siguientes se han mantenido mas o menos compatibles con GNU Emacs A pesar de o quizas a causa de su venerable pasado Emacs es uno de los editores de texto mas potentes y versatiles hoy en dia Debe remarcarse que es principalmente un editor de texto y no un procesador de texto su enorme conjunto de caracteristicas esta orientado a ayudar el usuario a manipular trozos de texto mas que manipular el tipo de letra de los caracteres o imprimir documentos aunque Emacs puede tambien hacer eso Emacs tiene una gran cantidad de caracteristicas que permiten lidiar con la aparentemente sencilla tarea de editar texto que van desde comandos para manipular palabras y parrafos borrarlos moverlos moverse por entre ellos etc hasta resaltado de sintaxis para hacer el codigo fuente mas facil de leer o ejecutar macros de teclado que contienen lotes de comandos de edicion definidos por el usuario La rica variedad de caracteristicas que se encuentran en Emacs es el resultado de su diseno poco habitual Casi toda la funcionalidad del editor desde las operaciones basicas de edicion como la insercion de caracteres en un documento hasta la configuracion de la interfaz de usuario es controlada por un dialecto del lenguaje de programacion 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 limite bien directamente por el usuario o mas habitualmente cargando fragmentos de codigo Emacs Lisp Estos fragmentos son conocidos como bibliotecas librerias paquetes o extensiones Emacs contiene un gran numero de bibliotecas escritas en Emacs Lisp y en Internet se pueden encontrar mas bibliotecas de terceras partes Muchas bibliotecas implementan ayudas para la programacion 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 codigo con una unica interfaz Otras bibliotecas realizan funciones menos habituales A continuacion se enumeran varios ejemplos Calc una potente calculadora numerica Calendar mode para guardar calendarios y diarios de citas Doctor una implementacion 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 Dired potente y extensible administrador de archivos de interfaz parecida a Midnight Commander ERC un cliente IRC Gnus un completo lector de grupos de noticias y de correo electronico MULE MultiLingual extensions to Emacs extensiones multilingues para Emacs Permite la edicion de texto escrito en multiples lenguajes mas o menos analogo a Unicode Info un navegador de ayuda en linea Emacs wiki software de wiki para Emacs basado en Lisp Planner un gestor de informacion personal para Emacs Tetris PongEl problema del diseno de Emacs basado en Lisp es una penalizacion de rendimiento resultante del hecho de cargar e interpretar el codigo Lisp En los sistemas donde fue implementado en primer lugar Emacs era a menudo mucho mas lento que otros editores de texto Algunos acronimos bromistas aluden a este hecho Eight Megabytes And Constantly Swapping de los dias 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 rapidos de manera que Emacs raramente se nota lento De hecho Emacs se inicia mas rapidamente que la mayoria de procesadores de texto modernos Otros acronimos de broma hacen alusion al uso de teclas modificadoras para acceder a funcionalidades avanzadas Escape Meta Alt Control Shift Plataformas Editar Este articulo o seccion se encuentra desactualizado La informacion suministrada ha quedado obsoleta o es insuficiente Este aviso fue puesto el 24 de noviembre de 2020 Emacs es uno de los programas de ordenador no triviales mas 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 grafica de usuario GUI Emacs utiliza el Sistema de ventanas X para generar su GUI ya sea directamente o bien usando un widget toolkit como Motif LessTif o GTK Emacs puede usar tambien los sistemas graficos nativos de Mac OS X utilizando la API Carbon y de Microsoft Windows La interfaz grafica proporciona barras de menu barras de herramientas barras de scroll y menus contextuales Modos de edicion Editar Emacs adapta su comportamiento al tipo de texto que esta editando mediante modos de edicion llamados modos principales major modes Los modos principales se definen para texto ordinario codigo fuente para diversos lenguajes de programacion 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 mas 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 principales tambien ofrecen comandos especiales de edicion Por ejemplo los modos principales para lenguajes de programacion definen habitualmente comandos para saltar al principio o al final de una funcion El comportamiento de Emacs puede ser mas personalizado aun utilizando los modos menores minor modes Mientras que solamente 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 programacion C define un modo menor diferente para cada uno de los estilos de sangria mas populares Personalizacion Editar Muchos usuarios de Emacs personalizan el editor para adaptarlo a sus necesidades Hay tres formas principales de personalizar Emacs La primera es la extension customize que permite que el usuario asigne valores a variables comunes de personalizacion como el esquema de color usando una interfaz grafica Esto esta orientado a principiantes en Emacs que no quieren trabajar con codigo 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 metodo para personalizar Emacs es usar Emacs Lisp Habitualmente el codigo 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 configuracion por defecto y para definir nuevos comandos para el usuario Muchos usuarios avanzados tienen ficheros emacs de cientos de lineas con personalizaciones que hacen que Emacs funcione de forma muy diferente del comportamiento por defecto Si un fragmento de codigo Emacs Lisp es util en general a menudo se empaqueta en forma de biblioteca y se distribuye a otros usuarios Muchas bibliotecas de terceras partes se pueden encontrar en Internet Por ejemplo una biblioteca llamada Wikipedia mode para editar articulos de Wikipedia Hay incluso un grupo de noticias de Usenet gnu emacs sources enlace roto disponible en Internet Archive vease el historial la primera version y la ultima usado para enviar nuevas bibliotecas Algunas bibliotecas externas pueden convertirse en una biblioteca estandar de Emacs Documentacion Editar El primer Emacs incluia una potente biblioteca de ayuda que podia mostrar la documentacion para cada comando variable y funcion interna es posible que haya originado esta tecnica A causa de esto Emacs fue calificado de programa autodocumentado Este termino no significa que Emacs escriba su propia documentacion sino que presenta su propia documentacion al usuario Esta caracteristica hace que la documentacion de Emacs sea muy accesible Por ejemplo el usuario puede averiguar que comando esta asociado a una combinacion de teclas introduciendo simplemente C h k que invoca al comando describe key seguido de la combinacion de teclas Cada funcion incluia una cadena de documentacion pensada especificamente para ser mostrada al usuario en caso que este lo pidiera Esta practica se extendio posteriormente a varios lenguajes de programacion como Lisp y Java El sistema de ayuda de Emacs es util no solamente para principiantes sino tambien para usuarios avanzados que escriban codigo en Emacs Lisp Si la documentacion para una funcion o variable no es suficiente el sistema de ayuda puede ser utilizado para navegar entre el codigo fuente de Emacs Lisp tanto para bibliotecas predefinidas como para bibliotecas externas instaladas Por tanto es muy conveniente programar en Emacs Lisp usando el mismo Emacs Ademas de la documentacion incluida en el programa Emacs tiene un manual especialmente largo detallado y bien escrito Una copia electronica 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 bifurco 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 tambien Ademas de las versiones electronicas los tres manuales estan disponibles en forma de libro publicado por la Free Software Foundation Emacs tambien tiene un tutorial Cuando Emacs se inicia sin especificar ningun fichero para editar muestra instrucciones para ejecutar comandos simples de edicion y para invocar el tutorial Internacionalizacion Editar Emacs soporta la edicion de texto escrito en muchos lenguajes humanos Hay soporte para muchos alfabetos guiones sistemas de escritura y convenciones culturales Emacs proporciona revision ortografica para muchos lenguajes mediante la llamada a programas externos como ispell Muchos sistemas de codificacion estan soportados como por ejemplo UTF 8 La version 21 5 de XEmacs tiene soporte parcial para Unicode La version 21 4 de GNU Emacs tiene un soporte similar Emacs 22 tendra mejor soporte Todos estos esfuerzos para soportar Unicode utilizan una codificacion interna especifica de Emacs con lo cual se necesita una conversion para cargar y guardar UTF 8 sera el sistema de codificacion interna de Emacs en una version futura de XEmacs 21 5 y seguramente en GNU Emacs 23 No obstante la interfaz de usuario de Emacs esta en ingles y no ha sido traducida a otros idiomas con la excepcion del tutorial para principiantes De modo no oficial existen varios proyectos de traduccion de la documentacion de GNU Emacs asi como un proyecto de internacionalizacion y localizacion completas de GNU Emacs al espanol veanse los enlaces Para usuarios con deficiencias visuales hay un subsistema llamado Emacspeak que permite que el editor sea usado unicamente mediante una interfaz de audio Licencia EditarEl codigo fuente del programa que incluye tanto los componentes en lenguaje C como en Emacs Lisp esta disponible libremente para su examen modificacion y redistribucion bajo los terminos de la Licencia publica general de GNU GNU GPL Las versiones mas antiguas de la documentacion de GNU Emacs fueron liberadas bajo una licencia ad hoc que requeria la inclusion de ciertos textos en cualquier copia modificada En el manual de usuario de GNU Emacs por ejemplo esto incluia la forma de obtener GNU Emacs y el ensayo politico de Richard Stallman El Manifesto de GNU 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 mas modernas de la documentacion de GNU Emacs usan la licencia GFDL y usan secciones invariantes para requerir la inclusion de los mismos documentos y tambien que los manuales se autoproclamen como Manuales GNU Uso de Emacs EditarComandos Editar 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 creara un nuevo fichero con este nombre Por ejemplo escribiendo emacs xorg conf se editara el fichero xorg conf en el directorio actual si existe No obstante la documentacion de Emacs recomienda iniciar el programa sin introducir un nombre de fichero para evitar el mal habito 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 unica instancia del programa En el modo de edicion 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 edicion 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 edicion es en realidad una llamada a una funcion en el entorno de Emacs Lisp Incluso un comando tan simple como escribir a para insertar el caracter a implica una llamada a una funcion En este caso la funcion seria self insert command Mas abajo se muestran algunos de los comandos basicos Se pueden encontrar mas en la lista de comandos de Emacs La tecla de control se representa con una C mayuscula y la tecla de alternativa Alt o meta se representa con una M mayuscula Comando Tecla Descripcionforward word M f Avanzar una palabra search word C s Buscar una palabra en el buffer undo C Deshacer el ultimo 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 edicion save buffer C x C s Guardar el buffer de edicion actual en su fichero visitado save with newname C x C w Guardar el buffer de edicion 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 despues 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 multiple 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 tecnica permite tener mas comandos para el teclado que cuando se utiliza el presionado simple de teclas esta metodologia fue popularizado por Emacs proveniente desde TECMAC una de las colecciones macro de TECO predecesor de Emacs Desde entonces ha sido una caracteristica inclusive hasta en redactores modernos de codigo como Visual Studio Cuando Emacs esta ejecutando una interfaz grafica muchos comandos se pueden invocar desde el menu 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 mas rapido y conveniente una vez que las secuencias de teclas se han memorizado Algunos comandos Emacs trabajan mediante la invocacion de programas externos tal como ispell para la comprobacion de ortografia o gcc para la compilacion de programas analizando la salida del programa y mostrando el resultado en Emacs El Minibuffer Editar El minibuffer normalmente la linea inferior de la pantalla es el espacio en el que Emacs pide informacion En el minibuffer se puede introducir el texto que se debe encontrar en una busqueda el nombre de un fichero para leer o guardar e informacion similar Cuando es aplicable es posible utilizar el completado mediante la tecla del tabulador tab completion Gestion de ficheros y visualizacion Editar 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 mayoria de los buffers contienen informacion cargada desde archivos de texto binarios que el usuario puede editar y guardar de nuevo a disco Los buffers se usan tambien para almacenar texto temporal como las cadenas de documentacion mostradas por la biblioteca help Tanto en modo de terminal de texto como en modo grafico Emacs es capaz de dividir el area de edicion en secciones separadas a las cuales se refiere como ventanas desde el ano 1975 lo cual puede resultar confuso en sistemas con otro concepto de ventana de forma que mas de un buffer pueda ser mostrado a la vez Esto tiene muchos posibles usos Por ejemplo una seccion puede ser utilizada para mostrar el codigo fuente de un programa mientras que otra muestra los resultados de compilar ese programa En entornos graficos Emacs puede lanzar tambien multiples ventanas graficas conocidas como marcos frames en la terminologia propia de Emacs El menique de Emacs Editar Debido a que Emacs requiere un uso frecuente de las teclas modificadoras y en particular de la tecla Control la cual normalmente se pulsa con el menique muchos usuarios asiduos de Emacs sufren lesiones por esfuerzo repetitivo las cuales se manifiestan como molestias y dolor en los dedos meniques Este problema es tan frecuente que ha llegado a conocerse entre la comunidad de usuarios como el menique de Emacs Una solucion comun consiste en intercambiar las funciones de las teclas Control y Caps Lock en la parte izquierda del teclado o definir ambas teclas como Control 14 Tambien existen teclados especiales Kinesis Contoured Keyboard que colocan las teclas modificadoras en una posicion en la que pueden ser facilmente pulsadas con el pulgar o con teclas modificadoras de gran tamano en una posicion en la que se puedan pulsar con la palma de la mano Microsoft Natural Keyboard Cultura EditarLa Iglesia de Emacs Editar Richard Stallman Preliminares 2013 La Iglesia de Emacs formada por Richard Stallman es una parodia sobre una religion para los usuarios de Emacs En esa se refiere a Vi como el editor de la bestia vi vi vi que seria 6 6 6 en numeracion romana pero esto no quiere decir que se este en contra del uso de Vi se dice que usar una version libre de vi es solo una penitencia Stallman tambien encarna a un santo de la iglesia de Emacs que tiene el nombre de San Ignucio el cual usa un antiguo disco duro como aureola Vease tambien EditarAUCTeX GNU TeXmacs Lista de programas para Unix Iglesia de EmacsReferencias Editar savannah gnu org emacs Project Memberlist en ingles savannah gnu org emacs Summary Thomas Widmann 13 de junio de 2005 Emacs defined in Collins English Dictionary comp emacs Consultado el 27 de septiembre de 2006 Stephen J Turnbull XEmacs vs GNU Emacs Consultado el 27 de septiembre de 2006 1 Jaroslaw Rzeszotko 16 de Octubre de 2006 Stiff asks great programmers answer Archivado el 8 de noviembre de 2006 en Wayback Machine en ingles Meadow Multilingual enhancement to gnu Emacs with ADvantages Over Windows en ingles Richard Stallman 27 de Septiembre de 2000 VM and the FSF en ingles Carbon Emacs Package Archivado desde el original el 25 de enero de 2006 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 Archivado desde el original el 6 de marzo de 2007 Consultado el 27 de septiembre de 2006 GNU Emacs on Windows Franz Inc 2006 Consultado el 27 de septiembre de 2006 How To Avoid The Emacs Pinky Problem Xahlee org Consultado el 22 de julio de 2011 Bibliografia EditarCiccarelli Eugene 1978 An Introduction to the Emacs Editor Cambridge Massachusetts MIT Artificial Intelligence Laboratory AIM 447 PDF enlace roto disponible en Internet Archive vease el historial la primera version y la ultima HTML Stallman Richard M 1979 updated 1981 EMACS The Extensible Customizable Self Documenting Display Editor Cambridge Massachusetts MIT Artificial Intelligence Laboratory AIM 519A PDF enlace roto disponible en Internet Archive vease el historial la primera version y la ultima HTML Stallman Richard M 2002 GNU Emacs Manual 15th edition edicion 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 Archivado desde el original el 22 de enero de 2007 Consultado el 21 de enero de 2007 Glickstein Bob 1997 April Writing GNU Emacs Extensions O Reilly amp Associates 1 56592 261 1 Cameron Debra Elliott James Loy Marc 2004 December Learning GNU Emacs 3rd Edition O Reilly amp 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 amp Co ISBN 978 1 4116 8297 9 Archivado desde el original el 23 de diciembre de 2012 Consultado el 21 de enero de 2007 Zawinski Jamie 21 de junio de 2005 Emacs Timeline Consultado el 30 de septiembre de 2006 Enlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre Emacs The GNU Emacs homepage en ingles Wikemacs en ingles Lista de modificaciones de Emacs en ingles Datos Q189722 Multimedia EmacsObtenido de https es wikipedia org w index php title Emacs amp oldid 136807632, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos