Skip to main content

Guía de Emacs para CEO

Escrito por
Headshot of Josh Stella

Josh Stella

hero container isolation

11 de noviembre de 2015

0 minutos de lectura

Hace años—no, décadas—vivía en Emacs. Escribía código y documentos, administraba el correo electrónico y el calendario, y usaba la terminal, todo desde el editor/sistema operativo. Estaba muy contento. Pasaron los años y me cambié a cosas más nuevas y relucientes. Como resultado, olvidé cómo hacer tareas tan básicas como navegar archivos de forma eficiente sin usar el mouse. Hace unos tres meses, al darme cuenta de cuánto tiempo pasaba cambiando entre aplicaciones y computadoras, decidí volver a probar Emacs. Fue una buena decisión por varias razones que contaré en esta publicación. También encontrarás consejos sobre .emacs y Dropbox para que puedas configurar un entorno práctico y portátil.

Si nunca has usado Emacs, probablemente lo detestes, aunque quizá también te encante. Es una especie de máquina de Rube Goldberg del tamaño de una casa que, a primera vista, cumple todas las funciones de una tostadora. No parece precisamente una recomendación, pero la clave está en «a primera vista». Cuando entiendes Emacs, te das cuenta de que es una tostadora termonuclear que también puede servir como motor para... bueno, prácticamente cualquier cosa que quieras hacer con texto. Si piensas en cuánto de tu vida informática gira en torno al texto, es una afirmación bastante audaz. Audaz, pero cierta.

Aunque quizá lo más importante para mí es que es la única aplicación que he usado que me hace sentir que realmente me pertenece, en vez de tratarme como un «usuario» anónimo cuyo bolsillo los departamentos de marketing de productos apuntan con astucia desde elegantes oficinas en algún lugar cerca de Soma o Redmond. Las aplicaciones modernas de productividad y creación (por ejemplo, Pages o los IDE) son como bicicletas de carreras de fibra de carbono. Vienen muy bien equipadas y completamente ensambladas. Emacs es como una caja de piezas clásicas de Campagnolo y un hermoso cuadro de acero con racores al que le falta una biela y una maneta de freno que tienes que encontrar en algún pequeño nicho cultural de Internet. La primera es más rápida y está completa. La segunda es una fuente inagotable de alegría o frustración, según tu personalidad, y te durará toda la vida. Soy de esas personas que sienten la misma alegría al encontrar una vieja reserva de piezas Campy que al personalizar mi editor con eLisp. Cada quien tendrá su experiencia.

Bicicleta blanca de acero apoyada contra un árbol en un jardín frondoso
Una bicicleta de acero de 1933 que todavía uso. Echa un vistazo a esta comparación de tubos de cuadro: https://www.youtube.com/watch?v=khJQgRLKMU0.

Quizá esto dé la impresión de que Emacs es anacrónico o anticuado. No lo es. Es potente y atemporal, pero exige que te tomes el tiempo para entenderlo en sus propios términos. Esos términos se alejan bastante de lo convencional y parecen extraños, pero tienen una lógica que resulta convincente y encantadora. Para mí, Emacs se siente como el futuro, no como el pasado. Así como el cuadro de acero con racores seguirá siendo útil y cómodo dentro de décadas, mientras que la bicicleta maravillosa de fibra de carbono terminará en un vertedero, hecha pedazos tras un impacto, Emacs seguirá siendo una herramienta útil cuando la aplicación de moda de hoy ya haya caído en el olvido.

Si te atrae la idea de crear tu propio entorno de trabajo personal editando código Lisp y llevarte ese entorno hecho a tu medida a cualquier computadora, quizá te encante Emacs. Si te gustan las cosas nuevas y relucientes y quieres ponerte a trabajar de inmediato sin invertir mucho tiempo ni esfuerzo mental, probablemente no sea para ti. Ya no escribo código (salvo para Ludwig y Emacs Lisp), pero muchos de los ingenieros de Fugue usan Emacs con buenos resultados. Diría que entre nuestros ingenieros, el 30 % usa Emacs, el 40 % IDE y el 30 % Vim. Pero esta publicación trata sobre Emacs para CEO y otros jefes de ceño fruncido (PHB) [1] (y, oye, también para cualquiera que tenga curiosidad), así que explicaré o justificaré por qué me encanta y cómo lo uso. También espero darte suficientes detalles para que puedas tener una experiencia exitosa, sin pasar horas buscando en Google.

Ventajas que perduran

Las ventajas a largo plazo de usar Emacs hacen la vida más fácil. El beneficio neto compensa con creces el esfuerzo inicial. Considera lo siguiente:

Se acabó cambiar de contexto

Org Mode por sí solo justifica invertir bastante tiempo, pero, si eres como yo, normalmente trabajas en una docena de documentos: desde publicaciones de blog hasta listas de lo que necesitas hacer para una conferencia y evaluaciones de empleados. En el mundo informático actual, eso suele implicar usar varias aplicaciones, todas con interfaces de usuario que distraen y distintas maneras de almacenar, ordenar y buscar información. El resultado es que tienes que cambiar constantemente de contexto mental y recordar pequeños detalles. Detesto cambiar de contexto porque es algo que se me impone debido a un modelo de interfaz defectuoso[2], y odio tener que recordar cosas que mi computadora debería recordar por mí en cualquier mundo racional. Al ofrecer un entorno único, Emacs es incluso más potente para un PHB que para un programador, ya que los programadores suelen pasar una proporción mayor del día en una sola aplicación. Cambiar de contexto mental tiene un costo mayor del que suele parecer. Los proveedores de sistemas operativos y aplicaciones han maquillado las interfaces para distraernos de esta realidad. Si tienes conocimientos técnicos, poder acceder a un potente intérprete de lenguaje con un solo atajo de teclado (M-:) resulta especialmente útil.[3]

Muchas aplicaciones pueden usarse en pantalla completa todo el día para editar texto. Emacs es único porque es tanto un editor como un intérprete de Lisp. En esencia, siempre tienes a una o dos teclas de distancia una máquina completa de Turing, mientras te ocupas de tus tareas. Si sabes poco o mucho de programación, reconocerás que esto significa que puedes hacer cualquier cosa en Emacs. Una vez que recuerdas los comandos, tienes acceso casi en tiempo real a toda la potencia de tu computadora mientras trabajas. No querrás recrear Excel en eLisp, pero la mayoría de las tareas que podrías hacer en Excel tienen un alcance menor y se resuelven fácilmente con una o dos líneas de código. Si necesito procesar números, es más probable que vaya al búfer de notas y escriba un poco de código que abrir una hoja de cálculo. Incluso si tengo que escribir un correo que no sea de una sola línea, normalmente lo escribo en Emacs y lo pego en mi cliente de correo. ¿Para qué cambiar de contexto si puedes mantener el ritmo? Quizá empieces con un par de cálculos sencillos, pero con el tiempo podrás agregar a Emacs, con relativa facilidad, cualquier cálculo que necesites. Esto quizá sea único entre las aplicaciones que también ofrecen funciones completas para crear cosas destinadas a otras personas. ¿Recuerdas esas terminales mágicas de los libros de Isaac Asimov? Emacs es lo más parecido que he encontrado.[4] Ya no tengo que decidir qué aplicación usar para cada cosa. Simplemente trabajo. Tener una gran herramienta y comprometerte a usarla te da una verdadera ventaja en potencia y eficiencia.

Crear con tranquilidad

¿Cuál es el resultado de tener las mejores funciones de edición de texto que he encontrado? ¿De contar con una comunidad de personas que crea todo tipo de complementos útiles? ¿De tener toda la potencia de Lisp a solo una combinación de teclas? Que uso Emacs para todo mi trabajo creativo, salvo para hacer música o imágenes.

Tengo dos monitores en mi escritorio. Uno está en modo vertical y tiene Emacs en pantalla completa todo el día. En el otro uso navegadores web para investigar y leer; normalmente también tengo una terminal abierta. En otro escritorio de OS X tengo el calendario, el correo y demás, ocultos mientras trabajo en Emacs, y desactivo todas las notificaciones. Así puedo concentrarme de verdad en lo que estoy haciendo. Me ha resultado casi imposible eliminar las distracciones en las aplicaciones de interfaz más modernas, que intentan ser útiles y fáciles de usar. No necesito que me recuerden constantemente cómo realizar operaciones que ya he hecho decenas de miles de veces; lo que necesito es una hoja en blanco, limpia y agradable, para pensar. Tal vez, por mi edad y mis experiencias, se me dificulte vivir en entornos ruidosos, pero recomendaría probarlo a cualquiera. Descubre cómo es tener un entorno informático realmente tranquilo y sin distracciones. Claro, muchas aplicaciones ahora tienen modos que ocultan la interfaz y, por suerte, Apple y Microsoft ya incluyen modos de pantalla completa que sí sirven. Pero ninguna otra aplicación es lo bastante potente como para «vivir» en ella para la mayoría de las tareas. A menos que escribas código todo el día o trabajes en un documento muy largo, como un libro, seguirás expuesto al ruido de otras aplicaciones. Además, la mayoría de las aplicaciones modernas parecen condescendientes y, al mismo tiempo, carecen de funciones y facilidad de uso.[5] Las únicas aplicaciones que me gustan menos que las de oficina son sus versiones en línea.

Estación de trabajo de escritorio con el editor de texto Emacs en el monitor izquierdo y ventanas de terminal y navegador web en el monitor derecho
La disposición de mi escritorio. Emacs a la izquierda.

Pero ¿qué pasa con la comunicación? La diferencia entre crear y comunicarse es considerable. Soy mucho más productivo en ambas tareas cuando reservo un tiempo específico para cada una. En Fugue usamos Slack, que es maravilloso y un infierno a la vez. Lo tengo en un escritorio para mensajes, junto con el calendario y el correo, así que mientras estoy creando algo, puedo ignorar felizmente todo el parloteo del mundo. Basta con una avalancha de mensajes en Slack o un correo de un inversionista de capital de riesgo o un miembro de la junta directiva para sacarme de inmediato de mi trabajo. Pero casi todo puede esperar una o dos horas.

Llevarlo todo contigo y conservarlo para siempre

La tercera razón por la que Emacs me parece más ventajoso que otros entornos es que es fácil llevarte todas tus cosas. Quiero decir que, en vez de tener un montón de aplicaciones que interactúan y sincronizan a su manera, solo necesitas uno o dos directorios que se sincronicen mediante Dropbox o algo similar. Así puedes llevarte todo tu trabajo a cualquier lugar, en el entorno que configuraste según tus necesidades. Lo hago entre OS X, Windows y, a veces, Linux. Es muy sencillo y confiable. Esta capacidad me resulta tan útil que me da pereza lidiar con Pages, GDocs, Office u otros tipos de archivos y aplicaciones que me obligan a buscar cosas en el sistema de archivos o en la nube.

El factor que limita conservar cosas para siempre en una computadora es el formato de archivo. Si suponemos que la humanidad ya resolvió definitivamente el problema del almacenamiento[6], la cuestión con el tiempo es si podremos seguir accediendo a la información que creamos. Los archivos de texto son el formato informático más duradero. Puedes abrir fácilmente en Emacs un archivo de texto de 1970. No puede decirse lo mismo de las aplicaciones de Office. Además, los archivos de texto son pequeños: muchísimo más pequeños que los archivos de datos de las aplicaciones de Office. Como coleccionista digital y persona que toma muchas notas pequeñas a medida que se le ocurren ideas, para mí es importante tener una colección sencilla, liviana y permanente, que esté siempre disponible.

Si ya estás listo para probar Emacs, ¡sigue leyendo! Las secciones que vienen no sustituyen un tutorial completo, pero al terminar de leerlas podrás empezar a usarlo.

Aprender a usar Emacs: configuración técnica

El precio de toda esta potencia y tranquilidad mental es una curva de aprendizaje pronunciada: Emacs funciona de una manera muy distinta a la que estás acostumbrado. Al principio, sentirás que pierdes el tiempo con una aplicación arcaica y extraña que el mundo moderno dejó atrás. Es un poco como aprender a andar en bicicleta[7] si solo has manejado autos.

¿Qué versión de Emacs?

Uso la versión estándar de Emacs de GNU para OS X y Windows. Puedes descargar la versión para OS X en http://emacsformacosx.com/ y la versión para Windows en http://www.gnu.org/software/emacs/. Hay muchas otras versiones, especialmente para Mac, pero he comprobado que la curva de aprendizaje para hacer cosas potentes (que implican Lisp y muchos modos) es mucho menor con la versión original. Así que descárgala y ¡empecemos![8]

Primero, tendrás que aprender a navegar

En este documento uso las convenciones de teclas y combinaciones de Emacs. Se usa «C» para control, «M» para meta (que normalmente corresponde a Alt u Option) y el guion para indicar que debes mantener presionadas las teclas al mismo tiempo. Así que C-h t significa mantener presionada la tecla control y escribir h; luego soltar control y escribir t. Este es el comando para abrir el tutorial, que te recomiendo probar ahora.

No uses las teclas de flecha ni el mouse. Funcionan, pero prueba durante una semana los comandos de navegación nativos de Emacs. Cuando los hayas incorporado a tu memoria muscular, probablemente te gustarán y los extrañarás mucho cada vez que uses otra herramienta. El tutorial de Emacs explica bastante bien cómo usarlos, pero te los resumiré para que no tengas que leerlo completo. Lo básico es que, en lugar de las flechas, usas C-b para ir atrás, C-f para avanzar, C-p para ir a lo anterior (arriba) y C-n para ir a lo siguiente (abajo). Quizá pienses: «¿Por qué haría eso si tengo teclas de flecha que funcionan perfectamente?». Hay varias razones. Primero, no tienes que apartar las manos de la posición de escritura; además, las teclas para avanzar y retroceder, combinadas con Alt (o Meta en Emacspeak), te permiten moverte de a una palabra. Esto resulta más práctico de lo que parece. Una tercera buena razón es que puedes repetir un comando si escribes un número antes. Suelo hacerlo al editar documentos: calculo cuántas palabras necesito retroceder o cuántas líneas subir o bajar y escribo algo como C-9 C-p o M-5 M-b. Los otros comandos de navegación realmente importantes se basan en a para el inicio de algo y e para el final. C-a|e se usa para las líneas, y M-a|e para las oraciones. Para que los comandos de oración funcionen correctamente, tendrás que dejar dos espacios después de cada punto. Esto, a la vez que ofrece una función útil, elimina de la lista mental un tema de opinión. Si necesitas exportar el documento a un entorno de publicación que use un solo espacio, puedes crear una macro en un instante.

De verdad vale la pena completar el tutorial que viene con Emacs. Voy a explicar algunos comandos importantes para quienes tienen mucha prisa, pero el tutorial es excelente. Recuerda: C-h t abre el tutorial.

Aprende a copiar y pegar

Puedes poner Emacs en modo CUA, que funciona de una manera conocida, pero el método nativo de Emacs es excelente y bastante sencillo una vez que lo aprendes. Para marcar regiones (como cuando seleccionas), usa Shift junto con los comandos de navegación. Por ejemplo, C-F selecciona un carácter hacia adelante desde el cursor, etc. Copias con M-w, cortas con C-w y pegas con C-y. En realidad, se llaman «matar» y «arrancar», pero es muy parecido a cortar y pegar. Aquí hay algo de magia tras bambalinas en el kill ring, pero por ahora solo preocúpate por cortar, copiar y pegar. Si empiezas a enredarte en este punto, C-x u deshace la acción...

Después, aprende el modo Ido

Créeme. Ido facilita mucho el trabajo con archivos. Por lo general, no usas una ventana independiente del Finder|Explorador para trabajar con archivos en Emacs. En cambio, usas los comandos del editor para crear, abrir y guardar archivos. Sin Ido, esto puede ser un poco engorroso, así que te recomiendo instalarlo antes de aprender el otro método. Ido viene con Emacs desde la versión 22, pero tendrás que hacer algunos ajustes en tu archivo .emacs para que siempre se use. Es una buena oportunidad para configurar tu entorno.

La mayoría de las funciones de Emacs vienen en modos. Para instalar cualquier modo, tendrás que hacer dos cosas. Bueno, al principio tendrás que hacer algunas cosas más, pero solo hay que hacerlas una vez; después, solo serán dos. Lo primero es elegir un lugar para guardar todos tus archivos eLisp y decirle a Emacs dónde está. Te recomiendo crear un solo directorio, por ejemplo en Dropbox, que será tu carpeta principal de Emacs. Dentro, crea un archivo .emacs y un directorio .emacs.d. Dentro de .emacs.d, crea un directorio llamado lisp. Debería quedar así:

home|+.emacs|-.emacs.d | -lisp

Colocarás los archivos .el de elementos como los modos en el directorio home/.emacs.d/lisp y lo indicarás en tu archivo .emacs de la siguiente manera:

(add-to-list 'load-path "~/.emacs.d/lisp/")

El modo Ido viene con Emacs, así que no necesitas poner un archivo .el en tu directorio Lisp para instalarlo. Pero pronto agregarás otras cosas que sí irán allí.

Los enlaces simbólicos son tus aliados

Pero espera: ahí dice que .emacs y .emacs.d están en tu directorio de inicio, ¡pero nosotros los pusimos en una carpeta cualquiera de Dropbox! Así es. Esta es la manera de tener tu entorno disponible dondequiera que vayas. Guarda todo en Dropbox y crea enlaces simbólicos a .emacs, .emacs.d y tus directorios principales de documentos en ~. En OS X, es muy fácil con el comando ln -s, pero en Windows es un fastidio. Por suerte, Emacs ofrece una alternativa sencilla a los enlaces simbólicos en Windows: la variable de entorno HOME. Ve a Variables de entorno en Windows (desde Windows 10, basta con presionar la tecla Windows y escribir «Variables de entorno» en la búsqueda; esa es la mejor parte de Windows 10) y crea una variable de entorno HOME en tu cuenta que apunte a la carpeta de Dropbox que creaste para Emacs. Si quieres que sea fácil navegar a archivos locales que no estén en Dropbox, puedes crear un enlace simbólico a la carpeta principal de Emacs en Dropbox desde tu directorio de inicio real.

Con esto, ya hiciste todo lo necesario para que cualquier computadora apunte a tu configuración y tus archivos de Emacs. Si tienes una computadora nueva o usas la de otra persona durante una hora o un día, tendrás todo tu entorno de trabajo. La primera vez parece un poco complicado, pero, cuando sabes qué hacer, te toma unos diez minutos como máximo.

Pero estábamos configurando Ido...

Presiona C-x C-f y escribe ~/.emacs RET RET para crear tu archivo .emacs. Agrega estas líneas:

set up ido mode(require `ido)(setq ido-enable-flex-matching t)(setq ido-everywhere t)(ido-mode 1)

Con el búfer .emacs abierto, ejecuta el comando M-x evaluate-buffer. Si cometiste algún error al escribir algo, aparecerá un mensaje de error; de lo contrario, tendrás Ido. Ido cambia el funcionamiento del minibúfer al trabajar con archivos. Hay muy buena documentación al respecto, pero te daré algunos consejos. Aprovecha ~/: puedes escribir ~/ en cualquier momento en el minibúfer y volverás al directorio de inicio. Esto supone que deberías tener casi todas tus cosas a pocos pasos de allí. Yo uso ~/org para todo lo que no es código y ~/code para el código. Una vez que estés en el directorio correcto, a menudo tendrás una colección de archivos con distintas extensiones, sobre todo si usas Org Mode y publicas desde allí. Puedes escribir un punto y la extensión que quieras, sin importar en qué parte del nombre del archivo estés, e Ido limitará las opciones a los archivos con esa extensión. Por ejemplo, estoy escribiendo esta publicación de blog en Org Mode, así que el archivo principal es:

~/org/blog/emacs.org

De vez en cuando también lo publico en HTML con Org Mode, así que tengo un archivo emacs.html en el mismo directorio. Cuando quiero abrir el archivo Org, escribo:

C-x C-f ~/o[RET]/bl[RET].or[RET]

Los [RET] indican que presiono Enter para que Ido Mode complete automáticamente. Así que escribí 12 caracteres y, si ya estás acostumbrado, tardas mucho menos que abriendo Finder|Explorador y haciendo clic por todos lados. Ido Mode es muy útil, pero en realidad es un modo de utilidad para trabajar con Emacs. Exploremos algunos modos que sirven para hacer el trabajo.

Fuentes y estilos

Te recomiendo conseguir la excelente familia de fuentes Input para usar en Emacs. Puedes personalizarla con distintos tipos de llaves, ceros y otros caracteres. También puedes agregar interlineado adicional directamente en los archivos de fuentes. Recomiendo un interlineado de 1.5x y usar sus excelentes fuentes proporcionales para código y datos. Yo uso Input Serif para escribir; tiene un estilo peculiar, pero moderno. Puedes encontrarla en http://input.fontbureau.com/, donde puedes personalizarla a tu gusto. Puedes configurar las fuentes manualmente desde los menús de Emacs, pero esto agrega código a tu archivo .emacs y, si usas varios dispositivos, quizá quieras una configuración distinta para cada uno. Configuré mi archivo .emacs para detectar por nombre la computadora que estoy usando y ajustar la pantalla según corresponda. Este es el código:

set up fonts for different OSes. OSX toggles to full screen.(setq myfont "InputSerif")(cond ((string-equal system-name "Sampo.local") (set-face-attribute 'default nil :
font myfont :
height 144) (toggle-frame-fullscreen)) ((string-equal system-name "Morpheus.local") (set-face-attribute 'default nil :
font myfont :
height 144)) ((string-equal system-name "ILMARINEN") (set-face-attribute 'default nil :
font myfont :
height 106)) ((string-equal system-name "UKKO") (set-face-attribute 'default nil :
font myfont :
height 104)))

Reemplaza los valores de system-name por el resultado que obtengas al evaluar (system-name) en tu copia de Emacs. Ten en cuenta que en Sampo (mi MacBook) también configuré Emacs para que ocupe toda la pantalla. Me gustaría hacer lo mismo en Windows, pero Windows y Emacs no se llevan muy bien; cada vez que lo intento, termina en un estado extraño. Así que simplemente lo pongo en pantalla completa manualmente después de abrirlo.

También recomiendo quitar la terrible barra de herramientas que Emacs incorporó en algún momento de los años noventa, cuando estaba de moda poner barras de herramientas en las aplicaciones. También eliminé otros elementos de la interfaz para tener una experiencia sencilla y productiva. Agrega estas líneas a tu archivo .emacs para quitar la barra de herramientas y las barras de desplazamiento, pero conservar el menú (en OS X, de todos modos, se oculta hasta que mueves el mouse a la parte superior de la pantalla):

(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))(if (fboundp 'menu-bar-mode) (menu-bar-mode 1))

Org Mode

Prácticamente vivo en Org Mode. Es mi entorno preferido para redactar documentos, tomar notas, hacer listas de tareas pendientes y para el 90 % de todo lo demás que hago. Org se concibió originalmente como una combinación de herramienta para tomar notas y lista de tareas pendientes, creada por alguien que suele llevar su laptop a las reuniones. Estoy en contra de usar laptops en las reuniones y no lo hago, así que mis casos de uso son un poco distintos. Para mí, Org es principalmente una forma de manejar toda clase de contenido con una estructura. En Org Mode hay títulos y subtítulos, etc., que funcionan como un esquema. Org te permite expandir u ocultar el contenido del árbol y también reorganizarlo. Esto se adapta muy bien a mi forma de pensar, y me encanta usarlo así.

Org Mode también tiene muchos pequeños detalles que hacen más agradable el trabajo. Por ejemplo, la gestión de notas al pie es excelente y la salida en LaTeX/PDF es muy buena. Org puede generar agendas a partir de las tareas pendientes de todos tus documentos y relacionarlas fácilmente con fechas y horas. No lo uso para compromisos externos, que manejo en un calendario compartido, pero es invaluable para crear cosas y llevar un registro de lo que necesito crear en el futuro. Instalarlo es tan sencillo como agregar org-mode.el a tu directorio Lisp y agregar estas líneas a tu archivo .emacs si quieres que aplique sangría según la ubicación en el árbol y que abra los documentos completamente expandidos:

set up org mode(setq org-startup-indented t)(setq org-startup-folded "showall")(setq org-directory "~/org")

La última línea indica a Org dónde buscar los archivos que debe incluir en las agendas y en otras funciones. Guardo Org directamente en mi directorio de inicio; es decir, uso un enlace simbólico al directorio que está en Dropbox, como expliqué antes.

Tengo un archivo stuff.org que siempre mantengo abierto en un búfer. Lo uso como una libreta. Org facilita extraer elementos como tareas pendientes y cosas con fecha límite. Es especialmente útil poder insertar código Lisp y ejecutarlo cuando lo necesites. Tener código junto con el contenido es muy práctico. Además, tienes acceso a la computadora real desde Emacs, y eso te libera.

Publicar con Org Mode

Me importa la apariencia y el formato de mis documentos. Empecé mi carrera como diseñador y creo que la información se puede y se debe presentar con claridad y belleza. Org ofrece una excelente compatibilidad para generar archivos PDF con LaTeX. LaTeX tiene su propia curva de aprendizaje, pero las tareas sencillas son bastante fáciles.

Si quieres usar fuentes y estilos distintos de los habituales de LaTeX, tendrás que hacer algunas cosas. Primero, necesitarás XeLaTeX para poder usar las fuentes normales del sistema en lugar de las específicas de LaTeX. Después, agrega esto a .emacs:

(setq org-latex-pdf-process '("xelatex -interaction nonstopmode %f" "xelatex -interaction nonstopmode %f"))

Puse esto al final de la sección de Org en mi archivo .emacs para mantener todo ordenado. Así podrás usar más opciones de formato al publicar desde Org. Por ejemplo, suelo usar:

#+LaTeX_HEADER: 
  usepackage{fontspec}

  #+LATEX_HEADER: 
  setmonofont[Scale=0.9]
  {Input Mono}

  #+LATEX_HEADER: 
  setromanfont{Maison Neue}

  #+LATEX_HEADER: 
  linespread{1.5}

  #+LATEX_HEADER: 
  usepackage[margin=1.25in]
  {geometry}

  #+TITLE: 
  Document Title Here

Estas líneas simplemente van en algún lugar de tu archivo .org. La fuente corporativa que usamos para el texto es Maison Neue, pero puedes poner aquí la que corresponda. Desaconsejo enfáticamente usar Maison Neue. Es una fuente terrible y nadie debería usarla.

Este archivo es un ejemplo de salida en PDF con esta configuración. Así es como se ve LaTeX recién instalado. Supongo que está bien, pero las fuentes son aburridas y un poco extrañas. Además, si usas el formato estándar, la gente supondrá que está leyendo algo que es, o pretende ser, un artículo académico. Ya te lo advertí.

Modo Ace Jump

Es más una joya que una función principal, pero la vas a querer. Funciona un poco como la función Leap de Jef Raskin, de hace ya bastante tiempo.[9] Para usarla, escribe C-c C-SPC y luego la primera letra de la palabra a la que quieres saltar. Se resaltan todas las palabras que empiezan con esa letra y se reemplazan por una letra del alfabeto. Solo tienes que escribir la letra correspondiente a la ubicación que quieres y el cursor saltará allí. Me encuentro usando esto tanto como las teclas de navegación o búsqueda más habituales. Descarga el archivo .el en tu directorio de Lisp y agrega esto a tu .emacs:

set up ace-jump-mode(add-to-list 'load-path "which-folder-ace-jump-mode-file-in/")(require 'ace-jump-mode)(define-key global-map (kbd "C-c C-SPC" ) 'ace-jump-mode)

Más adelante

Eso es suficiente para una publicación; quizá te ayude a llegar a donde quieres. Me encantaría saber cómo usas Emacs además de para programar (¡o para programar!) y si esto te resultó útil. Probablemente haya algunas cosas bastante torpes, propias de un PHB, en mi forma de usar Emacs; si quieres señalármelas, te lo agradecería. Seguramente escribiré algunas actualizaciones con el tiempo para presentar funciones o modos adicionales. Sin duda te mostraré cómo usar Fugue con Emacs y Ludwig-mode a medida que lo convertimos en algo más útil que el resaltado de código. Envíame tus comentarios a @fugueHQ en Twitter.

Notas al pie

  1. Si ahora eres algún tipo de PHB, pero nunca te dedicaste a la tecnología, probablemente Emacs no sea para ti. Puede que haya unas cuantas personas para quienes Emacs represente una vía de acceso a los aspectos más técnicos de la informática, pero seguramente sean pocas. Para que Emacs tenga sentido, es útil saber usar una terminal de Unix o Windows, haber editado uno o dos archivos de configuración y haber escrito algo de código en algún momento de tu vida.

  2. http://archive.wired.com/wired/archive/2.08/tufte.html

  3. Lo uso principalmente para hacer cálculos mientras escribo. Por ejemplo, estaba redactando una carta de oferta para un nuevo empleado y quería calcular cuántas opciones incluir. Como tengo una variable definida en mi archivo .emacs para las acciones en circulación, puedo escribir M-: (* .001 outstanding-shares) y obtener una décima de punto sin abrir una calculadora ni una hoja de cálculo. Guardo muchos números en variables como esta para evitar cambiar de contexto.

  4. Lo que falta es la web. Existe un navegador web para Emacs llamado eww, que te permite navegar desde Emacs. De hecho, lo uso: es un excelente bloqueador de anuncios y evita que quienes diseñan sitios web tomen la mayoría de las malas decisiones de legibilidad. Es un poco como el modo de lectura de Safari. Lamentablemente, la mayoría de los sitios web tienen mucho contenido superfluo y elementos de navegación molestos que no se traducen bien al texto.

  5. A menudo se confunde la facilidad de uso con la facilidad de aprendizaje. La facilidad de aprendizaje se refiere a qué tan difícil es aprender a usar una herramienta. La facilidad de uso se refiere a qué tan útil es. A menudo, estas dos cosas están reñidas, como ocurre con el mouse y los menús. Los menús son fáciles de aprender, pero poco prácticos, por eso existen los atajos de teclado desde los primeros tiempos. Raskin tenía razón en muchos puntos sobre las interfaces gráficas de usuario en general, aunque no le hicieron caso. Ahora, los sistemas operativos están agregando funciones como una búsqueda decente a los atajos de teclado. En OS X y Windows, mi método predeterminado para navegar es la búsqueda. La búsqueda de Ubuntu está muy mal hecha, al igual que el resto de su interfaz gráfica.

  6. AWS S3 ha resuelto prácticamente el almacenamiento de archivos mientras exista Internet. Hay billones de objetos almacenados en S3 y nunca han perdido ninguno. Casi todos los servicios de almacenamiento en la nube se basan en S3 o lo imitan. Nadie alcanza la escala de S3, así que guardo allí las cosas importantes, a través de Dropbox.

  7. A estas alturas, quizá estés pensando: «¿Qué le pasa a este tipo con las bicicletas?». ... Me encantan en todos los sentidos. Son el medio de transporte más eficiente desde el punto de vista mecánico que se haya inventado. Pueden ser objetos de gran belleza. Y, con un poco de cuidado, pueden durar toda la vida. En 2001, le pedí a Rivendell Bicycle Works que me construyera un cuadro y todavía me hace feliz cada vez que lo miro. Las bicicletas y UNIX son los dos mejores inventos con los que he interactuado. Bueno, esos y Emacs.

  8. Esto no es un tutorial de Emacs. Emacs incluye uno, y es excelente. Repaso algunas de las cosas que considero más importantes para configurar Emacs de forma útil, pero esto no lo reemplaza de ninguna manera.

  9. Jef Raskin diseñó la computadora Canon Cat en la década de 1980, después de tener diferencias con Steve Jobs durante el proyecto Macintosh, que él había liderado originalmente. La Cat tenía una interfaz centrada en documentos (como deberían tener todas las computadoras) y usaba el teclado de formas innovadoras que ahora puedes imitar con Emacs. Si pudiera tener una Cat moderna y potente, con una pantalla enorme de alta resolución y Unix por debajo, cambiaría mi Mac por ella de inmediato: https://youtu.be/o_TlE_U_X3c?t=19s

Seguridad de IaC diseñada para desarrolladores

Snyk protege tu infraestructura como código desde el ciclo de vida del desarrollo de software hasta el runtime en la nube con un motor unificado de políticas como código, para que todos los equipos puedan desarrollar, implementar y operar de forma segura.

Publicado en: