stringtranslate.com

GNU Emacs

GNU Emacs es un editor de texto y un conjunto de herramientas de software libre . Su desarrollo comenzó en 1984 por el fundador del Proyecto GNU, Richard Stallman , [4] basándose en el editor Emacs desarrollado para sistemas operativos Unix . GNU Emacs ha sido un componente central del proyecto GNU y un proyecto emblemático del movimiento del software libre . [5] [6]

El lema del programa es "el editor de texto autodocumentado extensible". [7] La ​​mayoría de la funcionalidad en GNU Emacs está implementada en Emacs Lisp accesible para el usuario , [8] lo que permite una extensibilidad profunda directamente por parte de los usuarios y a través de paquetes contribuidos por la comunidad. Sus características integradas incluyen un explorador y editor de archivos ( Dired ), una calculadora avanzada (Calc ), un cliente de correo electrónico y lector de noticias ( Gnus ), una integración del Protocolo de servidor de lenguaje , [9] y el sistema de productividad Org-mode . Una gran comunidad de usuarios ha contribuido con extensiones como la interfaz Git Magit , la capa de emulación Vim Evil , varios marcos de búsqueda, el administrador de ventanas EXWM, [10] y herramientas para trabajar con una amplia gama de lenguajes de programación.

Historia

Richard Stallman , fundador del Proyecto GNU y autor de GNU Emacs

El EMACS original fue escrito en 1976 por David A. Moon y Guy L. Steele Jr. como un conjunto de macros para el editor TECO , y en 1984, Richard Stallman comenzó a trabajar en GNU Emacs, para producir un reemplazo de software libre al propietario Gosling Emacs . GNU Emacs se basó inicialmente en Gosling Emacs, pero el reemplazo de Stallman de su intérprete Mocklisp con un verdadero intérprete Lisp requirió que casi todo su código fuera reescrito. Este se convirtió en el primer programa lanzado por el entonces naciente Proyecto GNU. GNU Emacs está escrito en C y proporciona Emacs Lisp , también implementado en C, como un lenguaje de extensión. La versión 13, la primera versión pública, se publicó el 20 de marzo de 1985. La primera versión de GNU Emacs ampliamente distribuida fue la versión 15.34, publicada más tarde en 1985. Las primeras versiones de GNU Emacs se numeraron como "1.xx", con el dígito inicial indicando la versión del núcleo C. El "1" se eliminó después de la versión 1.12 ya que se pensó que el número principal nunca cambiaría, y por lo tanto la versión principal pasó del "1" al "13". Se agregó un nuevo tercer número de versión para representar los cambios realizados por los sitios de los usuarios. [11] En el esquema de numeración actual, un número con dos componentes significa una versión de lanzamiento, y las versiones de desarrollo tienen tres componentes. [12]

GNU Emacs fue posteriormente adaptado al sistema operativo Unix . Ofrecía más funciones que Gosling Emacs, en particular un Lisp completo como lenguaje de extensión, y pronto reemplazó a Gosling Emacs como editor de facto de Emacs para Unix. Markus Hess explotó una falla de seguridad en el subsistema de correo electrónico de GNU Emacs en su ola de piratería de 1986, en la que obtuvo acceso de superusuario a computadoras Unix. [13]

Aunque los usuarios enviaban comúnmente parches y código Elisp al grupo de noticias net.emacs , la participación en el desarrollo de GNU Emacs estuvo relativamente restringida hasta 1999, y se utilizó como ejemplo del estilo de desarrollo "Catedral" en The Cathedral and the Bazaar . Desde entonces, el proyecto ha adoptado una lista de correo de desarrollo pública y acceso CVS anónimo . El desarrollo se llevó a cabo en un único tronco CVS hasta 2008, y hoy utiliza el Git [14] DVCS .

Richard Stallman ha seguido siendo el principal mantenedor de GNU Emacs, pero ha dejado de desempeñar su función en ocasiones. Stefan Monnier y Chong Yidong han supervisado el mantenimiento desde 2008. [15] El 21 de septiembre de 2015, Monnier anunció que dejaría su puesto de mantenedor a partir del congelamiento de funciones de Emacs 25. [16] El colaborador de larga data John Wiegley fue anunciado como el nuevo mantenedor el 5 de noviembre de 2015. [17] A Wiegley se unieron Eli Zaretskii en julio de 2016, [18] [20] y Lars Ingebrigtsen en septiembre de 2020. [21]

Licencias

Los términos de la Licencia Pública General GNU (GPL) establecen que el código fuente de Emacs, incluidos los componentes C y Emacs Lisp, están disponibles gratuitamente para su examen, modificación y redistribución.

Las versiones anteriores de la documentación de GNU Emacs aparecieron bajo una licencia ad hoc que requería la inclusión de cierto texto en cualquier copia modificada. En el manual del usuario de GNU Emacs, por ejemplo, esto incluía instrucciones para obtener GNU Emacs y el ensayo de Richard Stallman El Manifiesto GNU . Los manuales de XEmacs, que fueron heredados de manuales anteriores de GNU Emacs cuando se produjo la bifurcación, tienen la misma licencia. Las versiones más nuevas de la documentación utilizan la Licencia de Documentación Libre de GNU con "secciones invariables" que requieren la inclusión de los mismos documentos y que los manuales se proclaman a sí mismos como Manuales de GNU . [ cita requerida ]

En el caso de GNU Emacs, al igual que en el de muchos otros paquetes de GNU, la política sigue siendo aceptar contribuciones significativas de código sólo si el titular de los derechos de autor firma una renuncia o cesión adecuada de sus derechos de autor a la Free Software Foundation (FSF). Las contribuciones pequeñas de menos de 10 líneas de código están exentas. Esta política se aplica para que la FSF pueda defender el software en los tribunales si se viola su licencia copyleft .

En 2011, se advirtió que GNU Emacs había estado publicando accidentalmente algunos binarios sin el código fuente correspondiente durante dos años, en contra del espíritu previsto por la GPL. [22] [23] [24] Richard Stallman describió este incidente como "un error muy grave", [25] que se solucionó rápidamente. La FSF no demandó a ningún redistribuidor que, sin saberlo, violara la GPL al distribuir estos binarios.

Usando GNU Emacs

Edición de múltiples buffers Dired en GNU Emacs
Edición de código fuente C en GNU Emacs
Edición y compilación de código C++ desde GNU Emacs

Comandos

En su modo de edición normal, GNU Emacs se comporta como editores de texto comunes al permitir al usuario escribir texto con el teclado y mover el punto de edición con las teclas de flecha . Las secuencias de teclas de escape o presionar la tecla control y/o la tecla meta , la tecla alt o las teclas super junto con una tecla normal producen pulsaciones de teclas modificadas que invocan funciones del entorno Emacs Lisp. Los comandos como save-buffery save-buffers-kill-emacscombinan múltiples pulsaciones de teclas modificadas.

Algunos comandos de GNU Emacs funcionan invocando programas externos, como ispell para la corrección ortográfica y GNU Compiler Collection (GCC) para la compilación de programas. Emacs también admite "procesos inferiores", procesos secundarios de larga duración que interactúan con el editor. Esto se utiliza para implementar el modo shell , que ejecuta un shell de Unix como proceso inferior, así como los modos de bucle de lectura, evaluación e impresión (REPL) para varios lenguajes de programación. El soporte de Emacs para procesos externos lo hace adecuado para la programación interactiva en la línea de Interlisp o Smalltalk . [26]

Los usuarios que prefieran el diseño de atajo de teclado ampliamente utilizado de IBM Common User Access pueden usar cua-mode , un paquete que originalmente era un complemento de terceros pero que se ha incluido en GNU Emacs desde la versión 22.

Minibúfer

Emacs utiliza el "minibuffer", normalmente la línea inferior, para mostrar mensajes y solicitar información, funciones que suelen realizar los cuadros de diálogo de los editores de GUI . El minibuffer contiene información como el texto que se debe buscar o el nombre de un archivo que se debe leer o guardar. Cuando corresponde, se puede completar la línea de comandos utilizando las teclas de tabulación y espacio.

Gestión y visualización de archivos

Emacs guarda el texto en estructuras de datos conocidas como buffers . Los buffers pueden o no mostrarse en pantalla, y todas las características de los buffers son accesibles tanto por los programas Emacs Lisp como por la interfaz de usuario. [27] El usuario puede crear nuevos buffers y descartar los no deseados, y pueden existir muchos buffers al mismo tiempo, limitados únicamente por la memoria disponible. [28] Emacs puede configurarse para guardar la lista de buffers abiertos al salir y volver a abrir esta lista cuando se reinicia. [29]

Algunos buffers contienen texto cargado desde archivos de texto , que el usuario puede editar y guardar de nuevo en un almacenamiento permanente. Se dice que estos buffers son archivos "de visita". Los buffers también sirven para mostrar otros datos, como la salida de comandos de Emacs, listados de directorios , cadenas de documentación mostradas por la biblioteca "ayuda" y mensajes de notificación que en otros editores se mostrarían en un cuadro de diálogo . Algunas de estas notificaciones se muestran brevemente en el minibuffer, y GNU Emacs proporciona un buffer de *Mensajes* que mantiene un historial de las notificaciones más recientes de este tipo. Cuando el minibuffer se utiliza para la salida de Emacs, se le llama "área de eco". [30] Las notificaciones más largas se muestran en buffers propios. La longitud máxima de los mensajes que se mostrarán en el minibuffer es, por supuesto, configurable.

Los buffers también pueden servir como áreas de entrada y salida para un proceso externo, como un shell o REPL . Los buffers que Emacs crea por sí mismo suelen tener un nombre con asteriscos en cada extremo para distinguirlos de los buffers de usuario. La lista de buffers abiertos se muestra en este tipo de buffer.

La mayoría de las secuencias de teclas de Emacs siguen funcionando en cualquier búfer. Por ejemplo, la función estándar Ctrl-s isearchse puede utilizar para buscar nombres de archivos en búferes de directorio, y la lista de archivos se puede guardar en un archivo de texto como cualquier otro búfer. Los búferes de directorio se pueden cambiar a un modo de escritura, en el que los nombres de archivo y los atributos se pueden editar textualmente; cuando se guarda el búfer, los cambios se escriben en el sistema de archivos. Esto permite cambiar el nombre de varios archivos utilizando las funciones de búsqueda y reemplazo de Emacs. Cuando está equipado, Emacs muestra archivos de imagen en búferes. Emacs es seguro para binarios y limpio de 8 bits. [31]

Emacs puede dividir el área de edición en secciones independientes que no se superponen y que se denominan "ventanas", una característica que ha estado disponible desde 1975, antes de que existiera la interfaz gráfica de usuario de uso común. En la terminología de Emacs, las "ventanas" son similares a lo que otros sistemas llaman " marcos " o " paneles ": una porción rectangular de la pantalla del programa que se puede actualizar e interactuar con ella de forma independiente. Cada ventana de Emacs tiene una barra de estado denominada "línea de modo" que se muestra de forma predeterminada en el borde inferior de la ventana. Las ventanas de Emacs están disponibles tanto en modo de terminal de texto como en modo gráfico y permiten que se muestren más de un búfer, o varias partes de un búfer, a la vez. Las aplicaciones comunes son mostrar un búfer de directorio junto con el contenido de los archivos en el directorio actual (hay modos especiales para hacer que el búfer de archivo siga al archivo resaltado en directorio), mostrar el código fuente de un programa en una ventana mientras otra muestra un búfer de shell con los resultados de compilar el programa, ejecutar un depurador junto con un búfer de shell que ejecuta el programa, trabajar en el código mientras se muestra una página de manual u otra documentación (posiblemente cargada a través de la World Wide Web utilizando uno de los navegadores web integrados de Emacs) o simplemente mostrar múltiples archivos para editarlos a la vez, como un encabezado junto con su archivo de implementación para lenguajes basados ​​en C. Además, existe el modo follow-mode , un modo menor que encadena ventanas para mostrar partes no superpuestas de un búfer. Usando el modo follow-mode , un solo archivo se puede mostrar en múltiples ventanas una al lado de la otra que se actualizan apropiadamente cuando se desplaza. Además, Emacs admite "estrechar" un búfer para mostrar solo una parte de un archivo, con funcionalidad de navegación superior/inferior del búfer y cálculos de tamaño de búfer que reflejan solo el rango seleccionado.

Las ventanas de Emacs están organizadas en mosaicos y no pueden aparecer "encima" o "debajo" de sus compañeras. Emacs puede iniciar múltiples "marcos", que se muestran como ventanas individuales en un entorno gráfico. En una terminal de texto, se muestran múltiples marcos apilados que llenan toda la terminal y se pueden cambiar de uno a otro utilizando los comandos estándar de Emacs. [32]

Modos mayores

GNU Emacs puede mostrar o editar una variedad de tipos de texto diferentes y adapta su comportamiento mediante la introducción de modos adicionales denominados "modos principales". Existen modos principales para muchos propósitos diferentes, entre los que se incluyen la edición de archivos de texto ordinarios, el código fuente de muchos lenguajes de marcado y programación , así como la visualización de páginas web , listados de directorios y otra información del sistema. Cada modo principal implica un programa Emacs Lisp que extiende el editor para que se comporte de manera más conveniente para el tipo de texto especificado. Los modos principales suelen proporcionar algunas o todas las siguientes características comunes:

Modos menores

El uso de "modos menores" permite una mayor personalización. Un buffer de edición de GNU Emacs puede utilizar sólo un modo mayor a la vez, pero pueden operar varios modos menores simultáneamente. Estos pueden operar directamente sobre los documentos, como en la forma en que el modo mayor para el lenguaje de programación C define un modo menor separado para cada uno de sus estilos de sangría populares , o pueden alterar el entorno de edición. Algunos ejemplos de esto último incluyen un modo que agrega la capacidad de deshacer cambios en la configuración de la ventana y uno que realiza una verificación de sintaxis sobre la marcha. También hay un modo menor que permite utilizar varios modos mayores en un solo archivo, para mayor comodidad al editar un documento en el que se incluyen varios lenguajes de programación.

"Modo por lotes"

GNU Emacs permite utilizarlo como intérprete del lenguaje Emacs Lisp sin mostrar la interfaz de usuario del editor de texto. En el modo por lotes, no se carga la configuración del usuario y los caracteres de interrupción de terminal Cc y Cz tendrán su efecto habitual de salir del programa o suspender la ejecución en lugar de invocar las combinaciones de teclas de Emacs. GNU Emacs tiene opciones de línea de comandos para especificar un archivo para cargar y ejecutar, o se puede pasar una función de Emacs Lisp desde la línea de comandos. Emacs se iniciará, ejecutará el archivo o la función pasados, imprimirá los resultados y luego saldrá. [34] La línea shebang#!/usr/bin/emacs --script permite la creación de scripts independientes en Emacs Lisp. [35]

Manuales

Manual de GNU Emacs (portada de Etienne Suvasa; diseño de portada de Matt Lee)

El Manual de GNU Emacs , escrito por Richard Stallman, se incluye con GNU Emacs y se puede ver con el navegador de información incorporado. [36] Se incluyen dos manuales adicionales, el Manual de referencia de Emacs Lisp de Bil Lewis, Richard Stallman y Dan Laliberte y An Introduction to Programming in Emacs Lisp de Robert Chassell . Los tres manuales también están publicados en forma de libro por la Free Software Foundation .

Internacionalización

GNU Emacs admite muchos alfabetos, sistemas de escritura y convenciones culturales, y proporciona corrección ortográfica para muchos idiomas mediante la llamada a programas externos como ispell . La versión 24 agregó compatibilidad con texto bidireccional y escritura de izquierda a derecha y de derecha a izquierda para idiomas como árabe, persa y hebreo.

Se admiten muchos sistemas de codificación de caracteres , incluido UTF-8 . GNU Emacs utiliza UTF-8 para su codificación a partir de la versión 23, mientras que las versiones anteriores utilizaban su propia codificación internamente y realizaban la conversión al cargar y guardar. La codificación interna que utiliza XEmacs es similar a la de GNU Emacs, pero difiere en los detalles.

La interfaz de usuario de GNU Emacs se originó en inglés y, con la excepción del tutorial para principiantes, no ha sido traducida a ningún otro idioma.

Un subsistema llamado Emacspeak permite a los usuarios ciegos o con discapacidad visual controlar el editor a través de comentarios de audio.

Extensibilidad

GNU Emacs con AUCTeX , un conjunto de herramientas para editar documentos TeX y LaTeX

El comportamiento de GNU Emacs puede modificarse y ampliarse casi sin límites incorporando programas Emacs Lisp que definan nuevos comandos, nuevos modos de buffer, nuevos mapas de teclas, añadan opciones de línea de comandos, [37] y así sucesivamente. Muchas extensiones que proporcionan funcionalidades orientadas al usuario definen un modo principal (ya sea para un nuevo tipo de archivo o para crear una interfaz de usuario que no edite texto); otras definen sólo comandos o modos secundarios, o proporcionan funciones que mejoran otra extensión.

Desde la versión 24, GNU Emacs incluye un gestor de paquetes integrado al que se puede acceder con el list-packagescomando que permite a los usuarios buscar e instalar paquetes. Históricamente, los paquetes se descargaban manualmente y a menudo se distribuían a través del grupo de noticias de Usenet gnu.emacs.sources. Con el tiempo, muchos paquetes populares se han incluido en Emacs de forma predeterminada; por ejemplo, la versión 21 comenzó a incluir Org-mode , Calc, TRAMP y muchos otros. [38]

Un buffer en modo Org que muestra notas para planificar un viaje
Un buffer Magit que muestra el registro del repositorio git de Emacs

Los paquetes notables incluyen:

Actuación

En sus inicios, GNU Emacs solía funcionar notablemente más lento que los editores de texto rivales porque la carga e interpretación de su código basado en Lisp implicaba una sobrecarga de rendimiento. Las computadoras modernas son lo suficientemente potentes como para ejecutar GNU Emacs con facilidad, pero las versiones anteriores a la 19.29 (lanzada en 1995) no podían editar archivos de más de 8 MB. El límite de tamaño de archivo se aumentó en versiones sucesivas, y las versiones de 32 bits posteriores a GNU Emacs 23.2 pueden editar archivos de hasta 512 MB de tamaño. Emacs compilado en una máquina de 64 bits puede manejar búferes mucho más grandes. [42]

Aunque GNU Emacs está escrito en gran parte en Emacs Lisp, hace un uso extensivo de código C compilado de forma nativa para mejorar el rendimiento. Además de su propio código C, utiliza bibliotecas externas como libxml2 para analizar XML . Los paquetes instalados por el usuario pueden cargar módulos dinámicos. [43]

Desde la versión 28.1, Emacs puede compilar de forma nativa archivos Emacs Lisp a través de libgccjit, en lugar de solo compilarlos por bytes , lo que resulta en una mejora significativa en el rendimiento. [44] [45]

Plataformas

GNU Emacs se ejecuta en una amplia variedad de sistemas operativos , incluidos DOS , Windows , [46] [47] [48] y la mayoría de los sistemas operativos similares a Unix , como Linux , los diversos BSD , Solaris , AIX , HP-UX y macOS . [49] [50] [51] Muchos sistemas similares a Unix incluyen Emacs de forma predeterminada. [52] En 2023 se lanzó un puerto oficial para Android . [53] La versión 23.1 eliminó el soporte para algunas plataformas consideradas obsoletas. [3]

GNU Emacs se ejecuta tanto en terminales de texto como en entornos de interfaz gráfica de usuario (GUI). En sistemas operativos tipo Unix, GNU Emacs puede utilizar el sistema X Window para producir su GUI, ya sea directamente mediante widgets de Athena o mediante un "kit de herramientas de widgets" como Motif , LessTif o GTK+ . GNU Emacs también puede utilizar los sistemas gráficos nativos de macOS y Windows para proporcionar barras de menú , barras de herramientas , barras de desplazamiento y menús contextuales que se ajusten mejor a la apariencia de cada plataforma .

Tenedores

XEmacs

XEmacs 21.5 en GNU / Linux

Lucid Emacs, basado en una versión temprana de GNU Emacs 19, fue desarrollado a principios de 1991 por Jamie Zawinski y otros en Lucid Inc. Una de las bifurcaciones más conocidas en el desarrollo de software libre ocurrió cuando las bases de código de las dos versiones de Emacs divergieron y los equipos de desarrollo separados cesaron los esfuerzos para fusionarlas nuevamente en un solo programa. [54] Después de que Lucid se declarara en quiebra, Lucid Emacs pasó a llamarse XEmacs . [55] El desarrollo de XEmacs se ha ralentizado, con la versión estable más reciente 21.4.22 lanzada en enero de 2009, mientras que GNU Emacs ha implementado muchas características que antes eran exclusivas de XEmacs. Esto ha llevado a algunos usuarios a proclamar la muerte de XEmacs. [56]

Otras bifurcaciones de GNU Emacs

Otras bifurcaciones, menos conocidas que XEmacs, incluyen:

Historial de versiones

Los cambios en cada versión de Emacs se enumeran en un archivo NEWS que se distribuye con Emacs. [60] Los cambios que se producen al volver a la versión anterior se enumeran en un archivo "Antinews", a menudo con algún comentario sarcástico sobre por qué esto podría ser deseable. [61]

Referencias

  1. ^ Stefan Kangas (22 de junio de 2024). «Emacs 29.4 lanzado» . Consultado el 22 de junio de 2024 .
  2. ^ "GNU Emacs", Resumen del análisis , Open Hub
  3. ^ ab "Lista de máquinas Emacs".
  4. ^ Stallman, Richard . "El Proyecto GNU". Archivado desde el original el 3 de septiembre de 2024.
  5. ^ Fusco, John (6 de marzo de 2007). La caja de herramientas del programador de Linux. Pearson Education. ISBN 9780132703048.
  6. ^ Cameron, Debra; Elliott, James; Loy, Marc; Raymond, Eric; Rosenblatt, Bill (2005). Aprendiendo GNU Emacs. "O'Reilly Media, Inc." ISBN 9780596006488.
  7. ^ "Debian – detalles del paquete Emacs en wheezy".
  8. ^ "Manual de referencia de GNU Emacs Lisp". www.gnu.org . Consultado el 15 de septiembre de 2024 .
  9. ^ "gnu.org". www.gnu.org . Consultado el 15 de septiembre de 2024 .
  10. ^ ab Feng, Chris (27 de noviembre de 2017). "exwm: Emacs X Window Manager" – vía GitHub.
  11. ^ "NEWS.1–17". Hay un nuevo esquema de numeración de versiones. Lo que solía ser el primer número de versión, que era 1, se ha descartado ya que no parece que necesite tres niveles de número de versión. Sin embargo, se ha añadido un nuevo tercer número de versión para representar los cambios realizados por los sitios de los usuarios. Este número siempre será cero en Emacs cuando lo distribuya; se incrementará cada vez que se compile Emacs en otro sitio.
  12. ^ "Preguntas frecuentes sobre GNU Emacs". Un número de versión con dos componentes (por ejemplo, '22.1') ​​indica una versión publicada; tres componentes indican una versión en desarrollo (por ejemplo, '23.0.50' es lo que eventualmente se convertirá en '23.1').
  13. ^ Stoll, Clifford (1988). "Acosando al hacker astuto". Comunicaciones de la ACM . 31 (5): 484–497. doi : 10.1145/42411.42412 . S2CID  6956966.
  14. ^ "Re: GNU EMACS". GNU . Consultado el 16 de noviembre de 2014 .]
  15. ^ "Re: Buscando un nuevo mantenedor o equipo de Emacs". Lista de correo de gnu.org . Consultado el 23 de febrero de 2008 .; ver también "Stallman sobre la entrega de GNU Emacs, su futuro y la importancia de la nomenclatura"
  16. ^ "Congelamiento de funciones". lists.gnu.org .
  17. ^ "Emacs tiene un nuevo encargado de mantenimiento tras la salida de Richard Stallman". The Register .
  18. ^ "Damos la bienvenida a un nuevo co-mantenedor: Eli Zaretskii". lists.gnu.org .
  19. ^ Se anunciaron los ganadores de los premios Free Software Awards: Eli Zaretskii, Tad (SkewedZeppelin), GNU Jami, Free Software Foundation, 2023-03-18 , consultado el 2023-03-29
  20. ^ Zaretskii ha estado contribuyendo a GNU Emacs desde la década de 1990 y recibió el Premio de Software Libre 2022 de la FSF. [19]
  21. ^ "Lars Ingebrigtsen es ahora uno de los mantenedores de Emacs". lists.gnu.org .
  22. ^ Brockmeier, Joe (29 de julio de 2011). "¿Qué dices? GNU Emacs viola la GPL". Network World . Consultado el 19 de enero de 2016 .
  23. ^ Licencia revocada: aplicación de la Sección 4 de la GPL y las lecciones de Best Buy a Android de Google Archivado el 27 de enero de 2016 en Wayback Machine por Edward J. Naughton (8 de agosto de 2011)
  24. ^ "Emacs ha estado violando la GPL desde 2009 - Slashdot". desarrolladores.slashdot.org . 29 de julio de 2011 . Consultado el 10 de enero de 2022 .
  25. ^ "Re: ¿Archivos compilados sin fuentes?". lists.gnu.org . Consultado el 10 de enero de 2022 .
  26. ^ Halme, Heikki; Heinänen, Juha (1988). "GNU Emacs como entorno de programación dinámicamente extensible". Software: práctica y experiencia . 18 (10): 999–1009. doi : 10.1002/spe.4380181006. S2CID  8629911.
  27. ^ Spinellis, Diomidis; Gousios, Georgios (15 de enero de 2009). Arquitectura hermosa: los principales pensadores revelan la belleza oculta en el diseño de software. "O'Reilly Media, Inc." ISBN 9780596554392.
  28. ^ Heiberger, Richard M.; Holland, Burt (23 de diciembre de 2015). Análisis estadístico y presentación de datos: un curso intermedio con ejemplos en R. Springer. ISBN 9781493921225.
  29. ^ "Guardar sesiones de Emacs".
  30. ^ "Área de eco".
  31. ^ "Un tutorial de introducción a GNU Emacs".
  32. ^ "Marcos – Manual de GNU Emacs". Sin embargo, aún es posible crear múltiples "marcos" en terminales de texto; dichos marcos se muestran uno a la vez, llenando toda la pantalla de la terminal.
  33. ^ Cameron, Debra; Rosenblatt, Bill; Raymond, Eric S. (1996). Aprendiendo GNU Emacs. Serie En pocas palabras (2.ª edición). O'Reilly Media, Inc. pág. 533. ISBN 978-1-56592-152-8. Consultado el 2 de noviembre de 2010. Una fuente es una combinación de fuente y color.
  34. ^ "Opciones iniciales". En el modo por lotes, Emacs no muestra el texto que se está editando, y los caracteres de interrupción estándar de la terminal, como Cz y Cc, tienen su efecto habitual. Las funciones de Emacs que normalmente imprimen un mensaje en el área de eco, imprimirán en el flujo de salida estándar (stdout) o en el flujo de error estándar (stderr) en su lugar. (Para ser precisos, funciones como prin1, princ y print imprimen en stdout, mientras que message y error imprimen en stderr). Las funciones que normalmente leen la entrada del teclado desde el minibuffer toman su entrada del flujo de entrada estándar de la terminal (stdin) en su lugar.
  35. ^ "Emacs Lisp como lenguaje de programación". leancrew.com . Consultado el 27 de junio de 2023 .
  36. ^ Stallman, Richard; et al. (1987). Manual de GNU Emacs (PDF) (19.ª ed.). Boston, MA, EE. UU.: Free Software Foundation. Bibcode :1987gem..book.....S . Consultado el 8 de enero de 2022 .
  37. ^ "Argumentos de la línea de comandos".
  38. ^ "Emacs 22.1 publicado". lists.gnu.org . Consultado el 5 de julio de 2023 .
  39. ^ ab Stallman, Richard (3 de junio de 2007). "Emacs 22.1 publicado". info-gnu-emacs (Lista de correo) . Consultado el 31 de julio de 2011 .
  40. ^ Jonas Bernoulli. "¡Es Magit! Un Git Porcelain dentro de Emacs" . Consultado el 8 de febrero de 2017 .
  41. ^ Petersen, Mickey. "Una introducción a Magit, un modo Emacs para Git". Mastering Emacs . Consultado el 8 de febrero de 2017 .
  42. ^ "6.1 ¿Emacs tiene problemas con archivos de más de 8 megabytes?"
  43. ^ "Módulos dinámicos de Emacs". Manual de referencia de GNU Emacs Lisp . Consultado el 15 de abril de 2022 .
  44. ^ "Compilación de Lisp a código nativo". Manual de referencia de GNU Emacs Lisp . Consultado el 15 de abril de 2022 .
  45. ^ Corallo, Andrea; Nassi, Luca; Manca, Nicola (6 de abril de 2020). "Llevar GNU Emacs al código nativo". Simposio europeo Lisp 2020 . arXiv : 2004.02504 . doi :10.5281/zenodo.3736362.
  46. ^ B, Ramprasad (24 de junio de 2005). "Preguntas frecuentes sobre GNU Emacs para Windows 95/98/ME/NT/XP y 2000" . Consultado el 27 de septiembre de 2006 .
  47. ^ Borgman, Lennart (2006). «Página de inicio de EmacsW32». Archivado desde el original el 6 de marzo de 2007. Consultado el 27 de septiembre de 2006 .
  48. ^ "GNU Emacs en Windows". Franz Inc. 2006. Consultado el 27 de septiembre de 2006 .
  49. ^ "Emacs para Mac OS X" . Consultado el 9 de febrero de 2022 .
  50. ^ "Paquete Carbon Emacs" . Consultado el 10 de junio de 2012 .
  51. ^ "Aquamacs es un sistema Emacs fácil de usar, al estilo Mac, para Mac OS X" . Consultado el 27 de septiembre de 2006 .
  52. ^ "gnu.org". www.gnu.org . Consultado el 5 de julio de 2023 .
  53. ^ "Emacs | F-Droid: repositorio de aplicaciones Android gratuito y de código abierto". f-droid.org . Consultado el 26 de junio de 2023 .
  54. ^ Stephen J., Turnbull. "XEmacs vs. GNU Emacs" . Consultado el 2 de octubre de 2012 .
  55. ^ "xemacs(1): Emacs: Next Generation – Página del manual de Linux". linux.die.net . Consultado el 26 de junio de 2023 .
  56. ^ "XEmacs ha muerto. ¡Viva XEmacs!".
  57. ^ "FrontPage – Meadow Wiki". 16 de febrero de 2012. Archivado desde el original el 16 de febrero de 2012.
  58. ^ "Sitio web de SXEmacs". Sxemacs.org. 2009-10-11 . Consultado el 2009-11-08 .
  59. ^ "Remacs". El repositorio de Github de Remacs . Consultado el 22 de febrero de 2017 .
  60. ^ "NEWS.24.5". NOTICIAS DE GNU Emacs: historial de cambios visibles para el usuario.
  61. ^ "Antinews". Para aquellos usuarios que viven al revés en el tiempo, aquí hay información sobre cómo volver a la versión 24.5 de Emacs. Esperamos que disfruten de la mayor simplicidad que resulta de la ausencia de muchas características de Emacs 25.2.
  62. ^ "Cronología de Emacs". www.jwz.org . Consultado el 10 de enero de 2022 .
  63. ^ Kangas, Stefan (22 de junio de 2024). "Emacs 29.4 publicado". Archivado desde el original el 25 de junio de 2024. Consultado el 7 de julio de 2024. Emacs 29.4 es una versión de corrección de errores de emergencia; no incluye nuevas funciones excepto una pequeña cantidad de cambios destinados a resolver una vulnerabilidad de seguridad descubierta en Emacs 29.3 y versiones anteriores.
  64. ^ Kangas, Stefan (22 de junio de 2024). "etc/NEWS: Actualización para Emacs 29.4". GNU Savannah . Archivado desde el original el 8 de julio de 2024 . Consultado el 7 de julio de 2024 . Emacs 29.4 es una versión de corrección de errores de emergencia destinada a corregir la vulnerabilidad de seguridad que se describe a continuación... Los comandos de shell arbitrarios ya no se ejecutan al activar el modo Org. Esto es por razones de seguridad, para evitar la ejecución de comandos maliciosos.
  65. ^ "NOTICIAS de GNU Emacs". git.savannah.gnu.org . Archivado desde el original el 27 de julio de 2024 . Consultado el 15 de septiembre de 2024 .
  66. ^ "GNU Emacs - Proyecto GNU". www.gnu.org . Consultado el 21 de febrero de 2024 .
  67. ^ "Emacs 29.1 lanzado".
  68. ^ "Cambios en Emacs 29.1".
  69. ^ Batsov, Bozhidar (30 de julio de 2023). "Lanzamiento de Emacs 29.1". Emacs Redux . Consultado el 30 de julio de 2023 .
  70. ^ "Cambios en Emacs 28.2".
  71. ^ "Cambios en Emacs 27.2".
  72. ^ "Emacs 26.1 publicado". lists.gnu.org . Consultado el 29 de mayo de 2018 .
  73. ^ "Cambios en Emacs 25.3".
  74. ^ "Cambios en Emacs 25.2".
  75. ^ "Emacs 25.1 publicado". lists.gnu.org . Consultado el 17 de septiembre de 2016 .
  76. ^ "GNU Emacs NEWS – historial de cambios visibles para el usuario". 2015-04-10 . Consultado el 2015-04-11 .
  77. ^ Petton, Nicolas (10 de abril de 2015). «Emacs 24.5 lanzado». Archivado desde el original el 11 de abril de 2015. Consultado el 11 de abril de 2015 .
  78. ^ Morris, Glenn (2014-10-20). "Emacs 24.4 released" (Lanzada la versión 24.4 de Emacs). Consultado el 22 de octubre de 2014 .
  79. ^ Morris, Glenn (10 de marzo de 2013). "Emacs 24.3 lanzado" . Consultado el 16 de marzo de 2013 .
  80. ^ Yidong, Chong (27 de agosto de 2012). «Candidato a la versión 24.2 de Emacs» . Consultado el 11 de noviembre de 2012 .
  81. ^ Yidong, Chong (1 de junio de 2012). «Candidato a la versión 24.1 de Emacs» . Consultado el 1 de junio de 2012 .
  82. ^ Yidong, Chong (9 de enero de 2012). "Falla de seguridad en EDE; nuevos planes de lanzamiento" . Consultado el 23 de febrero de 2012 .
  83. ^ "emacs-fu: ¡emacs 23 ya está disponible!". Emacs-fu.blogspot.com. 28 de julio de 2009. Consultado el 8 de noviembre de 2009 .
  84. ^ Zawodny, Jeremy (15 de diciembre de 2003). "Edición remota de Emacs con Tramp". Linux Magazine . Archivado desde el original el 17 de abril de 2008. Consultado el 1 de febrero de 2010. Tramp [...] significa "Acceso remoto transparente (a archivos), protocolo múltiple".{{cite web}}: CS1 maint: URL no apta ( enlace )
  85. ^ Free Software Foundation Inc (2007). «Emacs News versión 22.1» . Consultado el 29 de diciembre de 2013 .
  86. ^ abc "NOTICIAS.19".
  87. ^ "Línea de tiempo de Emacs".
  88. ^ "Destellos de GNU".
  89. ^ "NOTICIAS.18".
  90. ^ "NEWS.18". A los programas como los programas de correo que invocan "el editor" como un elemento inferior para editar algún texto ahora se les puede indicar que utilicen un proceso Emacs existente en lugar de crear un nuevo editor.
  91. ^ ab "NOTICIAS.1–17".
  92. ^ "Componentes internos de Xemacs".

Lectura adicional

Enlaces externos