Emacs - Emacs

Emacs
Emacs27 mostrando Org, Magit y Dired con el tema modus-operandi.png
Autor (es) original (es) David A. Moon ,
Guy L. Steele Jr.
Desarrollador (es) Varios desarrolladores de software libre / libre , incluidos voluntarios y desarrolladores comerciales.
Versión inicial 1976 ; Hace 45 años ( 1976 )
Escrito en Lisp , C
Sistema operativo Multiplataforma
Escribe Editor de texto

Emacs / i m æ k s / o EMACS ( Editor MACroS ) es una familia de editores de texto que se caracterizan por su extensibilidad . El manual de la variante más utilizada, GNU Emacs , lo describe como "el editor de visualización en tiempo real, extensible, personalizable, autodocumentado". El desarrollo del primer Emacs comenzó a mediados de la década de 1970, y el trabajo en su descendiente directo, GNU Emacs, continúa activamente a partir de 2021.

Emacs tiene más de 10,000 comandos incorporados y su interfaz de usuario permite al usuario combinar estos comandos en macros para automatizar el trabajo. Las implementaciones de Emacs suelen presentar un dialecto del lenguaje de programación Lisp que proporciona una capacidad de extensión profunda, lo que permite a los usuarios y desarrolladores escribir nuevos comandos y aplicaciones para el editor. Se han escrito extensiones para administrar correo electrónico , archivos , esquemas y feeds RSS , así como clones de ELIZA , Pong , Conway's Life , Snake y Tetris .

El EMACS original fue escrito en 1976 por David A. Moon y Guy L. Steele Jr. como un conjunto de Editor MACroS para el editor de TECO . Se inspiró en las ideas de los editores TECO-macro TECMAC y TMACS.

La versión más popular y más portada de Emacs es GNU Emacs, que fue creada por Richard Stallman para el Proyecto GNU . XEmacs es una variante que se ramificó de GNU Emacs en 1991. GNU Emacs y XEmacs usan dialectos Lisp similares y son, en su mayor parte, compatibles entre sí. El desarrollo de XEmacs está inactivo.

Emacs es, junto con vi , uno de los dos principales contendientes en las tradicionales guerras de editores de la cultura Unix . Emacs es uno de los proyectos libres y de código abierto más antiguos que aún se encuentran en desarrollo.

Historia

Emacs fue iniciado por Guy L. Steele Jr. como un proyecto para unificar los muchos conjuntos de comandos y combinaciones de teclas de TECO divergentes en el MIT.
David A. Moon
La interfaz de Emacs fue influenciada por el diseño del teclado cadete espacial de Symbolics

El desarrollo de Emacs comenzó durante la década de 1970 en el MIT AI Lab , cuyas computadoras PDP-6 y PDP-10 usaban el sistema operativo Incompatible Timesharing System (ITS) que presentaba un editor de línea predeterminado conocido como Tape Editor and Corrector (TECO). A diferencia de la mayoría de los editores de texto modernos, TECO usaba modos separados en los que el usuario agregaba texto, editaba el texto existente o mostraba el documento. No se pueden colocar caracteres directamente en un documento escribiéndolos en TECO, sino que se ingresa un carácter ('i') en el lenguaje de comandos de TECO diciéndole que cambie al modo de entrada, ingrese los caracteres requeridos, tiempo durante el cual el texto editado no se mostró en la pantalla, y finalmente ingrese un carácter (<esc>) para que el editor vuelva al modo de comando. (Se usó una técnica similar para permitir la superación.) Este comportamiento es similar al del programa ed .

Richard Stallman visitó el laboratorio de inteligencia artificial de Stanford en 1972 o 1974 y vio al editor E del laboratorio , escrito por Fred Wright. Quedó impresionado por el comportamiento intuitivo WYSIWYG (Lo que ves es lo que obtienes) del editor , que desde entonces se ha convertido en el comportamiento predeterminado de la mayoría de los editores de texto modernos. Regresó al MIT, donde Carl Mikkelsen, un pirata informático en el Laboratorio de IA, había agregado a TECO un modo combinado de visualización / edición llamado Control-R que permitía que la visualización de la pantalla se actualizara cada vez que el usuario ingresaba una tecla. Stallman volvió a implementar este modo para que se ejecute de manera eficiente y luego agregó una función de macro al modo de edición de pantalla TECO que permitió al usuario redefinir cualquier pulsación de tecla para ejecutar un programa TECO.

E tenía otra característica que le faltaba a TECO: edición de acceso aleatorio. TECO era un editor secuencial de páginas diseñado para editar cintas de papel en el PDP-1 y, por lo general, permitía editar solo una página a la vez, en el orden de las páginas del archivo. En lugar de adoptar el enfoque de E de estructurar el archivo para acceso aleatorio de páginas en el disco, Stallman modificó TECO para manejar grandes búferes de manera más eficiente y cambió su método de administración de archivos para leer, editar y escribir el archivo completo como un solo búfer. Casi todos los editores modernos utilizan este enfoque.

La nueva versión de TECO se hizo popular rápidamente en el laboratorio de inteligencia artificial y pronto acumuló una gran colección de macros personalizadas cuyos nombres a menudo terminaban en MAC o MACS , que significa macro . Dos años más tarde, Guy Steele asumió el proyecto de unificar las diversas macros en un solo conjunto. La implementación final de Steele y Stallman incluyó facilidades para extender y documentar el nuevo conjunto de macros. El sistema resultante se llamó EMACS, que significa Editar MACroS o, alternativamente, E con MACroS . Stallman eligió el nombre Emacs "porque <E> no se usaba como abreviatura en ITS en ese momento". Un hacker apócrifo koan alega que el programa lleva el nombre de Emack & Bolio's , una popular heladería de Cambridge . El primer sistema operativo EMACS existió a finales de 1976.

Stallman vio un problema en demasiada personalización y bifurcación de facto y estableció ciertas condiciones para el uso. Más tarde escribió:

EMACS se distribuyó sobre la base de un intercambio comunitario, lo que significa que todas las mejoras deben devolverse para que las incorpore y distribuya.

El Emacs original, como TECO, se ejecutó solo en el PDP-10 con ITS. Su comportamiento fue lo suficientemente diferente al de TECO como para que pudiera considerarse un editor de texto por derecho propio, y rápidamente se convirtió en el programa de edición estándar en ITS. Mike McMahon portó Emacs de ITS a los sistemas operativos TENEX y TOPS-20 . Otros contribuyentes a las primeras versiones de Emacs incluyen a Kent Pitman , Earl Killian y Eugene Ciccarelli . En 1979, Emacs era el editor principal utilizado en el laboratorio de IA del MIT y en su Laboratorio de Ciencias de la Computación.

Implementaciones

Implementaciones tempranas

James Gosling escribió el primer editor similar a Emacs para ejecutar en Unix ( Gosling Emacs ) en 1981

En los años siguientes, los programadores escribieron una variedad de editores similares a Emacs para otros sistemas informáticos. Estos incluyeron EINE ( EINE Is Not EMACS ) y ZWEI ( ZWEI Was EINE Initially ), que fueron escritos para la máquina Lisp por Mike McMahon y Daniel Weinreb , y Sine ( Sine Is Not Eine ), que fue escrito por Owen Theodore Anderson. EINE de Weinreb fue el primer Emacs escrito en Lisp. En 1978, Bernard Greenberg escribió Multics Emacs casi en su totalidad en Multics Lisp en el Cambridge Information Systems Lab de Honeywell . Más tarde, Multics Emacs fue mantenido por Richard Soley , quien pasó a desarrollar el editor similar a NILE Emacs para el Proyecto NIL, y por Barry Margolin. Muchas versiones de Emacs, incluido GNU Emacs, adoptarían posteriormente Lisp como lenguaje de extensión.

James Gosling , quien más tarde inventaría NeWS y el lenguaje de programación Java , escribió Gosling Emacs en 1981. El primer editor similar a Emacs que se ejecutó en Unix , Gosling Emacs fue escrito en C y usó Mocklisp , un lenguaje con sintaxis similar a Lisp, como un idioma de extensión.

Anuncios temprana para Computer Corporation of America 's CCA EMACS (Steve Zimmerman). apareció en 1984. Las comparaciones de 1985 con GNU Emacs, cuando salió, mencionaban gratis frente a 2.400 dólares.


GNU Emacs

GNU Emacs ejecutándose en una consola de texto
GNU Emacs ejecutándose en Microsoft Windows

Richard Stallman comenzó a trabajar en GNU Emacs en 1984 para producir una alternativa 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 por un intérprete Lisp verdadero requirió que casi todo su código fuera reescrito. Este se convirtió en el primer programa lanzado por el 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, el primer lanzamiento público, se realizó el 20 de marzo de 1985. La primera versión ampliamente distribuida de GNU Emacs fue la versión 15.34, lanzada más tarde en 1985. Las primeras versiones de GNU Emacs se numeraron como 1.xx , con el dígito inicial denotando la versión del núcleo de 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 numeración pasó del 1 al 13 . En septiembre de 2014, se anunció en la lista de correo GNU emacs-devel que GNU Emacs adoptaría una estrategia de lanzamiento rápido y los números de versión aumentarían más rápidamente en el futuro.

GNU Emacs fue luego portado a Unix. Ofrecía más funciones que Gosling Emacs, en particular un Lisp con todas las funciones como su lenguaje de extensión, y pronto reemplazó a Gosling Emacs como el editor de facto de Unix Emacs. Markus Hess aprovechó una falla de seguridad en el subsistema de correo electrónico de GNU Emacs en su juerga de 1986 en la que obtuvo acceso de superusuario a computadoras Unix.

La mayor parte de la funcionalidad de GNU Emacs se implementa a través de un lenguaje de programación llamado Emacs Lisp . Debido a que aproximadamente el 70% de GNU Emacs está escrito en el lenguaje de extensión Elisp, solo se necesita portar el núcleo C que implementa el intérprete Elisp. Esto hace que la migración de Emacs a una nueva plataforma sea considerablemente menos difícil que la migración de un proyecto equivalente que consta únicamente de código nativo.

El desarrollo de GNU Emacs estuvo relativamente cerrado hasta 1999 y se usó como ejemplo del estilo de desarrollo de la Catedral en La Catedral y el Bazar . Desde entonces, el proyecto ha adoptado una lista de correo de desarrollo público y acceso CVS anónimo . El desarrollo se llevó a cabo en un solo tronco CVS hasta 2008 y luego se cambió al Bazaar DVCS . El 11 de noviembre de 2014, el desarrollo se trasladó a Git .

Richard Stallman se ha mantenido como el principal responsable de mantenimiento de GNU Emacs, pero en ocasiones se ha apartado del papel. Stefan Monnier y Chong Yidong fueron mantenedores de 2008 a 2015. John Wiegley fue nombrado mantenedor en 2015 después de una reunión con Stallman en MIT. A principios de 2014, GNU Emacs ha tenido 579 confirmadores individuales a lo largo de su historia.

XEmacs

XEmacs 21.5 en Linux

Lucid Emacs, basado en una versión alfa temprana de GNU Emacs 19, fue desarrollado a partir de 1991 por Jamie Zawinski y otros en Lucid Inc. Una de las primeras 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 sus esfuerzos por fusionarlos nuevamente en un solo programa. Desde entonces, Lucid Emacs ha pasado a llamarse XEmacs . Su desarrollo está actualmente inactivo, con la versión estable más reciente 21.4.22 lanzada en enero de 2009 (mientras que se lanzó una beta en 2013), mientras que GNU Emacs ha implementado muchas características anteriormente exclusivas de XEmacs.

Otras bifurcaciones de GNU Emacs

Otras bifurcaciones notables incluyen:

  • Aquamacs : basado en GNU Emacs (Aquamacs 3.2 está basado en GNU Emacs versión 24 y Aquamacs 3.3 está basado en GNU Emacs versión 25) que se centra en la integración con la interfaz de usuario de Apple Macintosh
  • Meadow : una versión japonesa para Microsoft Windows
  • SXEmacs : el tenedor de XEmacs de Steve Youngs

Varios editores de Emacs

uEmacs / Pk 4.0.15 en Linux
El mg diminuto editor similar a Emacs en OpenBSD 5.3. Editando el código fuente de Ruby
JOVE ejecutándose en una caja Debian
Zmacs , un Emacs para máquinas Lisp

En el pasado, proliferaron los proyectos destinados a producir versiones pequeñas de Emacs. GNU Emacs se apuntó inicialmente a computadoras con un espacio de direcciones plano de 32 bits y al menos 1  MiB de RAM. Tales computadoras eran estaciones de trabajo de alta gama y miniordenadores en la década de 1980, y esto dejó la necesidad de reimplementaciones más pequeñas que se ejecutarían en hardware de computadora personal común . Las computadoras de hoy tienen más que suficiente potencia y capacidad para eliminar estas restricciones, pero más recientemente se han diseñado pequeños clones para caber en discos de instalación de software o para usar en hardware menos capaz.

Otros proyectos apuntan a implementar Emacs en un dialecto diferente de Lisp o en un lenguaje de programación completamente diferente. Aunque no todos todavía se mantienen activamente, estos clones incluyen:

  • MicroEMACS , que fue escrito originalmente por Dave Conroy y desarrollado por Daniel Lawrence y que existe en muchas variaciones.
  • mg , originalmente llamado MicroGNUEmacs y, más tarde, mg2a, una rama de dominio público de MicroEMACS destinada a parecerse más a GNU Emacs. Ahora instalado por defecto en OpenBSD .
  • JOVE (la propia versión de Jonathan de Emacs), la implementación de Emacs no programable de Jonathan Payne para sistemas tipo UNIX .
  • MINCE (MINCE no es Emacs completo), una versión para CP / M y DOS posteriores, de Mark of the Unicorn . MINCE evolucionó a Final Word, que finalmente se convirtió en el procesador de textos Borland Sprint .
  • Perfect Writer , una implementación de CP / M derivada de MINCE que se incluyó alrededor de 1982 como el procesador de texto predeterminado con los primeros lanzamientos de Kaypro II y Kaypro IV. Más tarde se proporcionó con Kaypro 10 como alternativa a WordStar .
  • Freemacs , una versión de DOS que usa un lenguaje de extensión basado en la expansión de macro de texto y se ajusta al límite de memoria plana original de 64 KiB .
  • Zile . Zile era un acrónimo recursivo de Z ile I s L Ossy E Macs , pero el proyecto se volvió a escribir en Lua y ahora da la expansión como Editores Zile Implementa Lua. El nuevo Zile todavía incluye una implementación de Emacs en Lua llamada Zemacs. También hay una implementación de vi llamada Zi.
  • Zmacs , para MIT Lisp Machine y sus descendientes, implementado en ZetaLisp .
  • Climacs , una variante influenciada por Zmacs implementada en Common Lisp .
  • Epsilon , un clon de Emacs de Lugaru Software. Las versiones para DOS, Windows, Linux, FreeBSD, Mac OS X y O / S 2 se incluyen en el lanzamiento. Utiliza un lenguaje de extensión que no es Lisp con sintaxis C y utilizó una implementación de búfer de shell de comandos simultánea muy temprana en MS-DOS de tarea única.
  • PceEmacs es el editor basado en Emacs para SWI-Prolog .
  • Amacs , una versión Apple II ProDOS de Emacs implementada en 6502 por Brian Fox .
  • Hemlock , originalmente escrito en Spice Lisp , luego Common Lisp . Una parte de CMU Common Lisp . Influenciado por Zmacs . Posteriormente bifurcado por los proyectos Lucid Common Lisp (como Helix), LispWorks y Clozure CL . También hay un proyecto Portable Hemlock, que tiene como objetivo proporcionar un Hemlock, que se ejecuta en varias implementaciones de Common Lisp.
  • umacs , una implementación bajo OS-9
  • edwin , un editor de texto similar a Emacs incluido con MIT / GNU Scheme.

Editores con emulación de Emacs

  • Joe's Own Editor emula las combinaciones de teclas de Emacs cuando se invoca como jmacs .
  • JED tiene un modo de emulación para Emacs.
  • Eclipse (IDE) proporciona un conjunto de combinaciones de teclas de Emacs.
  • IntelliJ IDEA proporciona un conjunto de combinaciones de teclas de Emacs.
  • Epsilon (editor de texto) Por defecto es la emulación de Emacs y soporta un modo vi.
  • El sistema de texto Cocoa usa algo de la misma terminología y comprende muchos enlaces de navegación de Emacs. Esto es posible porque la IU nativa usa la tecla Comando (equivalente a Super) en lugar de la tecla Control .
  • GNU Readline es un editor de líneas que comprende las combinaciones de teclas de navegación estándar de Emacs. También tiene un modo de emulación vi .
  • GNOME Builder tiene un modo de emulación para Emacs.
  • MATLAB proporciona combinaciones de teclas de Emacs para su editor.
  • Visual Studio Code proporciona una extensión para emular combinaciones de teclas de Emacs.

Características

Emacs es principalmente un editor de texto y está diseñado para manipular fragmentos de texto, aunque es capaz de formatear e imprimir documentos como un procesador de texto al interactuar con programas externos como LaTeX , Ghostscript o un navegador web. Emacs proporciona comandos para manipular y mostrar diferencialmente unidades semánticas de texto como palabras , oraciones , párrafos y construcciones de código fuente como funciones . También cuenta con macros de teclado para realizar lotes de comandos de edición definidos por el usuario.

GNU Emacs es un editor de visualización en tiempo real , ya que sus ediciones se muestran en pantalla a medida que ocurren. Este es un comportamiento estándar para los editores de texto modernos, pero EMACS fue uno de los primeros en implementarlo. La alternativa es tener que emitir un comando distinto para mostrar el texto (por ejemplo, después de modificarlo). Esto se hace en editores de línea, como ed (unix), ED (CP / M) y Edlin (MS-DOS).

Arquitectura general

Casi toda la funcionalidad en Emacs, incluidas las operaciones básicas de edición como la inserción de caracteres en un documento, se logra mediante funciones escritas en un dialecto del lenguaje de programación Lisp . El dialecto utilizado en GNU Emacs se conoce como Emacs Lisp (ELisp). La capa elisp se sienta encima de un núcleo estable de servicios básicos y la plataforma de abstracción escrito en el lenguaje de programación C . En este entorno Lisp, las variables y funciones se pueden modificar sin necesidad de recompilar o reiniciar Emacs. La mayor parte de la configuración se almacena en variables y se cambia simplemente cambiando los valores de las variables.

La estructura principal de datos de edición de texto se denomina búfer que contiene texto con atributos adicionales; los más importantes son: punto (ubicación del cursor) y marca (otra ubicación, delimitando la región seleccionada junto con el punto ), el nombre del archivo que está visitando (si aplica) y los valores locales de las variables ELisp específicas del búfer. Dichos valores locales especifican en particular el conjunto de modos activos (exactamente un modo principal que normalmente adapta el editor al tipo de contenido del búfer (como ELisp, C, HTML, etc.) y cualquier número de modos menores que controlan otros comportamientos del editor independientemente del contenido escribe). Cualquier interacción con el editor (como presionar una tecla o hacer clic en un botón del mouse) se realiza ejecutando código Elisp, generalmente un comando , que es una función diseñada explícitamente para uso interactivo. Las claves se pueden redefinir arbitrariamente y también se puede acceder a los comandos por su nombre; algunos comandos evalúan el código Elisp arbitrario de los búferes (por ejemplo, eval-regiono eval-buffer).

Los búferes se muestran en ventanas , que son partes en mosaico de la pantalla del terminal o la ventana GUI (llamado marco en términos de Emacs; son posibles múltiples marcos). Dependiendo de la configuración, las ventanas incluyen barras de desplazamiento, números de línea, a veces una 'línea de encabezado' típicamente para facilitar la navegación, y una línea de modo en la parte inferior (generalmente muestra el nombre del búfer, los modos activos y la posición del punto del búfer, entre otros). La parte inferior de cada cuadro se usa para mensajes (luego llamada 'área de eco') y entrada de texto para comandos (luego llamada 'minibúfer').

Se pueden abrir varias ventanas en el mismo búfer, por ejemplo, para ver diferentes partes de un texto largo, y varios búferes pueden compartir el mismo texto, por ejemplo, para aprovechar diferentes modos principales en un archivo de idioma mixto. El modo principal también se puede cambiar manualmente según sea necesario con M-x <mode name>.

Personalización

  • Las pulsaciones de teclas se pueden grabar en macros y reproducir para automatizar tareas complejas y repetitivas. A menudo, esto se hace de forma ad-hoc, y cada macro se descarta después de su uso, aunque las macros se pueden guardar e invocar más tarde.
  • Al inicio, Emacs ejecuta un script Emacs Lisp llamado ~ / .emacs (las versiones recientes también buscan ~ / emacs.el , ~ / .emacs.d / init.el y ~ / .config / emacs / init.el ; Emacs ejecutará el primero que encuentre, ignorando el resto). Este archivo de personalización personal puede ser arbitrariamente largo y complejo, pero el contenido típico incluye:
    • Establecer variables globales o invocar funciones para personalizar el comportamiento de Emacs, por ejemplo (set-default-coding-systems 'utf-8)
    • Combinaciones de teclas para anular las estándar y para agregar accesos directos a los comandos que el usuario encuentra convenientes pero que no tienen una combinación de teclas por defecto. Ejemplo:(global-set-key (kbd "C-x C-b") 'ibuffer)
    • Cargando, habilitando e inicializando extensiones (Emacs viene con muchas extensiones, pero solo unas pocas se cargan por defecto).
    • Configurar enlaces de eventos para ejecutar código arbitrario en momentos específicos, por ejemplo, para recompilar automáticamente el código fuente después de guardar un búfer ( after-save-hook)
    • Ejecutar archivos arbitrarios, generalmente para dividir un archivo de configuración demasiado largo en partes manejables y homogéneas ( ~ / .emacs.d / y ~ / elisp / son ubicaciones tradicionales para estos scripts personales)
  • La extensión de personalización permite al usuario establecer propiedades de configuración como el esquema de color de forma interactiva, desde dentro de Emacs, de una manera más fácil de usar que estableciendo variables en .emacs : ofrece búsqueda, descripciones y texto de ayuda, entradas de opción múltiple, reversión a valores predeterminados, modificación de la instancia de Emacs en ejecución sin recargar, y otras comodidades similares a la funcionalidad de preferencias de otros programas. Los valores personalizados se guardan en .emacs (u otro archivo designado) automáticamente.
  • Los temas , que afectan la elección de fuentes y colores, se definen como archivos elisp y se eligen a través de la extensión de personalización.

Autodocumentado

El primer Emacs contenía una biblioteca de ayuda que incluía documentación para cada comando, variable y función interna. Debido a esto, los defensores de Emacs describieron el software como autodocumentado en el sentido de que presenta al usuario información sobre sus características normales y su estado actual. Cada función incluye una cadena de documentación que se muestra al usuario a pedido, una práctica que posteriormente se extendió a lenguajes de programación como Lisp , Java , Perl y Python . Este sistema de ayuda puede llevar a los usuarios al código real para cada función, ya sea de una biblioteca incorporada o de una biblioteca de terceros agregada.

Emacs también tiene un tutorial incorporado . Emacs muestra instrucciones para ejecutar comandos de edición simples e invocar el tutorial cuando se inicia sin un archivo para editar. El tutorial es de Stuart Cracraft y Richard Stallman.

Cultura

Iglesia de Emacs

Richard Stallman como St I GNUcius , un santo en la Iglesia de Emacs

La Iglesia de Emacs , formada por Richard Stallman , es una religión de parodia creada para los usuarios de Emacs. Si bien se refiere a vi como el editor de la bestia (vi-vi-vi es 6-6-6 en números romanos), no se opone al uso de vi; más bien, lo llama un anatema de software propietario . ("Usar una versión gratuita de vi no es un pecado sino una penitencia "). La Iglesia de Emacs tiene su propio grupo de noticias , alt.religion.emacs , que tiene publicaciones que pretenden apoyar esta religión parodia. Los partidarios de vi han creado un culto de vi opuesto .

Stallman se ha referido en broma a sí mismo como San I  GNU  cius , un santo en la Iglesia de Emacs.

Meñique de emacs

Hay folclore atribuir una lesión por esfuerzo repetitivo coloquialmente llamado Emacs meñique a la fuerte dependencia de Emacs de teclas de modificación, aunque no ha habido estudios realizados para mostrar Emacs hace más de tales problemas que otros programas de ordenador teclado-pesado.

Los usuarios han abordado esto a través de varios enfoques. Algunos usuarios recomiendan simplemente usar las dos teclas de control en teclados de PC típicos como las teclas Mayús mientras escriben para evitar forzar demasiado el meñique izquierdo, un uso adecuado del teclado reducirá el RSI. Los métodos del lado del software incluyen:

  • Personalizar el diseño de la clave para que la Ctrlclave se transponga con la clave. Técnicas similares incluyen definir la clave como una clave de control adicional o transponer las teclas de control y meta. Sin embargo, como estas teclas aún se presionan con el mismo dedo, aún pueden contribuir al meñique de Emacs.Caps LockCaps Lock
  • Software, como xwrits o el modo type-break incorporado en Emacs, que recuerda al usuario que debe tomar descansos programados regularmente.
  • Usando las combinaciones de teclas ErgoEmacs (con modo menor ergoemacs-mode).
  • Personalización de toda la distribución del teclado para mover las teclas de Emacs con frecuencia estadística a lugares más apropiados.
  • Paquetes como ace-jump-modeextensiones o elisp que brindan una funcionalidad similar de navegación por niveles, primero solicitando un carácter y luego reemplazando las ocurrencias del personaje con teclas de acceso para el movimiento del cursor.
  • evil-mode, una capa de emulación de Vim avanzada .
  • god-mode, que proporciona un enfoque similar al de vim con un modo para ingresar comandos de Emacs sin teclas modificadoras.
  • Utilizando el diseño de teclas personalizado ofrecido por Spacemacs , un proyecto en el que la space bartecla se utiliza como la tecla principal para iniciar las secuencias de control. El proyecto también incorpora en gran medida tanto evil-modey god-mode.
  • StickyKeys , que convierte secuencias de teclas en combinaciones de teclas.
  • Incorporado de Emacs viper-modeque permite el uso de la disposición de teclas vi para la edición básica de texto y el esquema de Emacs para funciones más avanzadas.
  • Otorgar un papel doble a una tecla de acceso más cómodo, como la barra espaciadora, para que funcione como una tecla de control cuando se presiona en combinación con otras teclas. Los teclados ergonómicos o teclados con un mayor número de teclas adyacentes a la barra espaciadora, como los teclados japoneses , también permiten el control con el pulgar de otras teclas modificadoras como Meta o Shift.
  • Usar un subconjunto ergonómico limitado de combinaciones de teclas y acceder a otras funciones escribiendo M-x <command-name>. El propio Mx también se puede rebotar.
  • Manejo de Emacs a través de la entrada de voz.

Las soluciones de hardware incluyen teclados especiales como el teclado contorneado de Kinesis , que coloca las teclas modificadoras donde se pueden operar fácilmente con el pulgar , o el teclado Microsoft Natural , cuyas teclas modificadoras grandes se colocan simétricamente a ambos lados del teclado y se pueden presionar con la palma de la mano. También se pueden utilizar pedales.

El meñique de Emacs es un desarrollo relativamente reciente. El teclado Space-cadet en el que se desarrolló Emacs tenía teclas de control de gran tamaño que estaban adyacentes a la barra espaciadora y eran fáciles de alcanzar con el pulgar.

Terminología

La palabra emacs es a veces en plural como emacsen , por analogía fonética con bafles y VAXen , en referencia a las diferentes variedades de Emacs.

Ver también

Referencias

Bibliografía

enlaces externos