Esta herramienta puede ser antigua, pero es la navaja suiza del software
Pase algunas décadas usando computadoras para el trabajo y desembolsará cientos de libras o más en editores de texto gráfico y software de organización personal, sin mencionar las extensiones del navegador y los servicios basados en la nube. Por lo general, hacen algunas cosas bien, pero pocos o ninguno lo hace todo. Sus interfaces brillantes son atractivas para la generación de tocar y deslizar, pero intercambian flexibilidad por facilidad de uso. En lugar de doblarlos a tu voluntad, debes evitarlos. Para una flexibilidad real, debe volver a un programa concebido antes de que se enviara la primera PC.
En términos de software, Emacs es un cruce entre una navaja suiza y un montacargas industrial. Se remonta a 1976 como una colección de macros escritas para TECO, un editor de texto que se remonta a los años sesenta. Tomó diferentes encarnaciones hasta que el fundador de la Free Software Foundation, Richard Stallman, creó una versión de código abierto llamada GNU Emacs en 1985. Esa versión sigue siendo una de las implementaciones más populares de Emacs, su uso no cuesta nada y es completamente de código abierto.
En esencia, emacs es un editor de texto, pero con un conjunto de características tan configurable y extensible que puede usarlo para cualquier cosa. Incluso puede programarlo usando una versión incorporada del lenguaje Lisp llamada Emacs Lisp (Elisp). Claro, también puede configurar Microsoft Word usando un lenguaje de programación subyacente, pero Emacs va más allá. La gente ha utilizado Elisp para crear todo, desde clientes de correo electrónico hasta lectores RSS e incluso navegadores web integrados directamente en Emacs. Puede usarlo como un entorno de desarrollo integrado (IDE) para codificar o como un organizador personal.
Hagamos algo simple en Emacs: crearemos un documento que ejecuta su propio código para insertar la fecha actual. Empiece por instalar el programa. Puede obtenerlo en la página de descargas de GNU , o si prefiere la línea de comandos, utilice su propio administrador de paquetes (por ejemplo, en distribuciones Debian / Ubuntu Linux: sudo apt-get install emacs ).
La Mac también tiene versiones adicionales como Aquamacs y Spacemacs , que utilizan funciones y combinaciones de teclas específicas de Mac. Puede descargar e instalar la mayoría de estos sistemas como binarios. Los puristas del otro extremo del espectro también pueden compilar su propia versión de GNU Emacs a partir del código fuente.
Abra Emacs y verá esta pantalla que muestra la página de bienvenida predeterminada:
Puede ejecutar el tutorial por su cuenta moviendo el cursor sobre la sección resaltada del Tutorial de Emacs y presionando regresar. Vale la pena leer al menos las primeras páginas ahora para que comprenda cómo moverse en el sistema.
Después de revisar las primeras páginas del tutorial, comience creando un archivo. Para hacer esto, necesita comprender las teclas Control y Meta. El control es una tecla (normalmente asignada a la tecla CTRL de su teclado) que se presiona junto con otras combinaciones de teclas para ejecutar comandos básicos de edición. Cp (eso es CTRL-p ), Cn , Cf y Cb mueven el cursor hacia arriba, abajo, derecha e izquierda respectivamente. En su lugar, puede usar las teclas de flecha, pero el objetivo de Emacs es mover las manos de un lugar a otro en el teclado lo menos posible. Está diseñado para hacerte más rápido con el tiempo a medida que tu memoria muscular absorbe los combos de claves arcanas.
Para crear un archivo, acceda a la misma función que utilizó para abrir uno: ‘buscar archivo’. Presione Cx Cf (esa es la notación de Emacs para mantener presionada la tecla CTRL mientras presiona xy luego f ). Observe la línea en la parte inferior de la pantalla ahora dice encontrar el archivo: . Esta línea se llama minibúfer y es una forma de interactuar con Emacs directamente. Le mostrará una ruta de directorio. Edítelo para que apunte al lugar donde desea crear el archivo, que llamaremos date-aware-doc.org:
Presione enter y la pantalla se quedará en blanco. Que no cunda el pánico, se ha creado el nuevo archivo. El tutorial sigue ahí, pero está en un búfer diferente.
Emacs usa un sistema de archivos, búferes y marcos. Cuando abre un archivo en el disco, aparece en un búfer, que es una parte de la memoria que le permite editar el texto del archivo. Sin embargo, debido a que Emacs en realidad es anterior a los sistemas operativos gráficos modernos, la mayoría del software se refiere a lo que Emacs llama «marcos» como «ventanas». De la misma manera, los equivalentes de las «ventanas» de Emacs se conocen más comúnmente como «paneles» en otros programas.
Cada marco contiene una o más ventanas y cada ventana muestra un búfer. La versión clásica de línea de comandos de Emacs solo le permite tener un marco abierto a la vez, pero con la versión GUI, puede tener múltiples marcos y búferes abiertos a la vez.
¿Lo tengo? Bueno; Vamonos.
Presione Mx b (eso es Meta yx juntos, y luego b por sí solo). ¿Ves cómo el mini-búfer pide cambiar de búfer? El valor predeterminado es el último búfer que usó, que en este caso es TUTORIAL. Presione regresar. Ahí está tu tutorial. Mx by return vuelve a traerlo de vuelta a date-awareness-doc.
Ahora, escriba:
* Encabezado uno
No olvides el espacio. Luego, presione shift y regrese juntos. ¿Ves cómo comienza la nueva línea con un asterisco? Presione M-Shift y la tecla de flecha derecha al mismo tiempo. Ahora hay dos asteriscos y la segunda línea es de un color diferente. Tipo:
** Título dos
Luego presione RET y agregue (sin asteriscos):
Este es nuestro cuerpo de texto. Ahora vamos a insertar una fecha.
Debido a que usamos la extensión .org para este archivo, emacs nos dejó en modo org.
Cada búfer en Emacs tiene un modo principal que define su funcionamiento. Hay modos para programar en Python o C, por ejemplo, y para editar texto. Los modos principales se reemplazan entre sí (no usarías los modos Python y C juntos) pero puedes extender los modos mayores con modos menores. El modo abreviado expande el texto en función de una lista predefinida de abreviaturas, por ejemplo, mientras que el modo de visualización de números de línea inserta números de línea junto al texto.
El modo Org es uno de los modos emacs integrados más populares. Es un esquema que incluye una serie de otras características de la organización, incluidas listas de tareas pendientes y un calendario.
Emacs le dice qué modo está usando en la línea de modo, que es la línea única justo encima del minibúfer. Entre paréntesis, debería ver ( Org ):
Ahora vamos a ayudar al documento a determinar qué fecha es ya insertarlo en su propio texto. Esto necesita un bloque de código, que emacs ejecuta directamente en el documento usando un modo menor llamado babel.
En una nueva línea al pie de su texto, escriba y luego presione TAB . Se expande al principio y al final de un bloque fuente. Dígale qué idioma estamos usando escribiendo python después del comienzo de la línea de apertura del bloque fuente. Luego, en el medio del bloque, inserte este simple código Python:
# + BEGIN_SRC python: exporta resultados
importar fecha y hora
currentDT = datetime.datetime.now ()
return currentDT.strftime («% a,% b% d,% Y»)
# + END_SRC
Su archivo ahora debería verse así:
Pruebe el código colocando el cursor al final de la última línea del código anterior en su documento y presionando Cc Cc para ejecutarlo. Ahora deberías ver esto:
Le pregunta si realmente desea ejecutar el código en ese bloque SRC. Esta es una verificación de seguridad, porque la ejecución de un código que no es de confianza en un documento puede afectar negativamente a su sistema. Este código no representa ningún riesgo, así que escriba sí .
¡Oh no! Tenemos un mensaje de error: ¡no hay función org-babel-execute para python! Emacs nos está diciendo que org-babel no sabe cómo ejecutar este código. Vamos a tener que configurarlo. Entonces presione Cg para salir de la operación actual y hagámoslo.
Emacs se carga usando un archivo de configuración llamado init.el (la extensión significa Emacs lisp), que contiene funciones y configuraciones personalizadas, como combinaciones de teclas y parámetros para abrir y formatear documentos.
Dependiendo de su implementación, lo encontrará en una carpeta como .emacs.d / en su directorio de inicio, junto con otros archivos subyacentes del programa. Créelo ahora presionando Cx Cf y luego ingresando la ruta. Variará según su sistema operativo, pero en Linux y MacOS use esto:
~ / .emacs.d / init.el
Ahora, copie este código Emacs Lisp en su documento:
(org-babel-do-load-languages
‘org-babel-load-languages
‘((pitón. t)))
Guarde esto ( Cx Cs ), ciérrelo ( Cx Ck luego RET ), y luego salga de Emacs cerrando todos los búferes a la vez ( Cx Cc ). Cuando reinicie Emacs, procesará ese archivo. A continuación, abra el archivo de date-aware-doc.org usando Cx Cf .
Ahora es el momento de exportar el documento. Afortunadamente, el modo de organización tiene su propio exportador integrado. Pulsa Cc Ce para que aparezca:
Como puede ver, podemos elegir una variedad de formatos de archivo para exportar, pero lo mantendremos simple y exportaremos texto ASCII directo. En lugar de exportar a un archivo, exportaremos directamente a un búfer emacs. Presione t para exportar a texto sin formato, y luego A para exportar al búfer (no ignore las mayúsculas, es importante).
Verá aparecer un nuevo búfer de emacs con un título y el texto del encabezado que escribimos anteriormente, pero numerado (emacs tiene reglas de formato que podemos cambiar, pero eso es para otro día). Desplácese hacia abajo y verá la fecha de hoy insertada en su documento:
Entonces, eso es emacs. Debería estar claro a estas alturas que no es un editor de texto sencillo. Podría llamarlo un sistema operativo que piensa que es un editor de texto. O un editor de texto que piensa que es un sistema operativo. Es complejo, difícil de aprender, difícil de configurar, deliberadamente poco atractivo e increíblemente poderoso. Solo una advertencia: si va a probarlo, asigne uno o dos meses para aprenderlo correctamente. Al principio, te ralentizará y sentirás como si estuvieras tratando de comer guisantes con palillos durante un tiempo, pero una vez que lo asimiles nunca mirarás atrás.