Archivo de la etiqueta: emacs

Lo que he aprendido: fuente de Emacs

¡He aprendido a cambiar la fuente de Emacs! Y no solo eso, sino que he conseguido que sea diferente según el sistema operativo en el que nos encontremos.

Todo esto ha venido porque la fuente por defecto de Emacs en Windows no me diferenciaba los ceros y la letra O y los unos y la L minúscula y me estaba volviendo loca. Aprovechando que en Matlab me había pasado a Consolas, decidí que de ahora en adelante usaría Consolas al estar en Windows (es una fuente propietaria pero que viene incluida en Microsoft Office). En GNU/Linux he seguido con la que se establecía por defecto1, Roboto Mono, que aunque la creó Google, lleva licencia Apache.

Como yo quería que Emacs eligiera la fuente según el sistema operativo, necesitaba averiguar primero cómo le llamaba Emacs a mi sistema operativo. Esto puede conseguirse evaluando la variable system-type, o bien con M-x eval-expression o con M-:. Así supe que esta variable toma el valor de windows-nt en Windows y gnu/linux en GNU/Linux. Algo totalmente inesperado dicho sea de paso.

Bien, ahora me faltaba averiguar cómo cambiar la fuente y crear un if. Lo primero es simple, solo hay que añadir cualquiera de estas líneas al archivo de configuración:

;; Establecer fuente
(set-face-attribute 'default t :font FUENTE :height TAMAÑO)
;; Establecer familia de fuentes
(set-face-attribute 'default t :family FAMILIA :height TAMAÑO)

El if tampoco es mucho más complejo, solo hay que tener en cuenta que tiene miles de paréntesis:

(if (condición)
(Expresiones si se cumple la condición)
(Expresiones si no se cumple la condición))

Fusionando ambas cosas me quedó esto:

;; Fuente
(if (eq system-type 'windows-nt)
    (set-face-attribute 'default nil :family "Consolas" :height 110)
    (set-face-attribute 'default nil :family "Roboto Mono" :height 110)
)

Evidentemente se puede mejorar añadiendo una condición de que use la fuente correspondiente solo si está disponible o de otras manera diversas que ahora no se me ocurren pero a vosotros sí porque sois muy listos. La cuestión es que hurgando un poco se puede conseguir casi cualquier cosa en Emacs y por eso me encanta.

Ale pues, os dejo, ¡contadme cosas en los comentarios!

Referencias

How to determine the operating system in elips? en StackOverflow

Emacs: Font Setup en Ergo Emacs

38.3 Operating System Environment en el manual de Emacs

37.12.1 Face Attributes en el manual de Emacs


Sonando:


  1. Para ver qué fuente está usando Emacs podemos hacer M-x describe-font 
Anuncios

Lo que he aprendido: magit

He empezado a usar Magit. Tanto escuchar Magit es el mejor modo para git jamás creado y yo empecé a usar Emacs por Magit me han convencido a darle una oportunidad. Eso y que el modo git normal que usaba no me carrula bien en el ordenador del curro (¡Windows!).

La cuestión es que Magit me flipa, puedo manejar mi repo desde Emacs solo dando a un par de teclas y ayudando por tanto a mis pobres bracitos lesionados por el ordenador.

Lo más curioso de este modo es que funciona a base de ventanitas (pop ups) en las que se nos dan opciones diversas. A cada ventanita se accede con una tecla y podemos acceder a la ventanita de las ventanitas con h (help). Cada ventanita se divide en dos pedazos, en la parte superior activamos las opciones y en la inferior elegimos el comando. No os preocupéis que enseguida lo veremos todo mucho más claro.

Por cierto, si como yo usáis Emacs con GUI y menús (¡sacrilegio!) tendréis en la barrita un menú de Magit con las diferentes órdenes y sus teclas correspondientes.

Lo básico: status, add y commit

Empezamos a usar Magit en un repositorio existente diciéndole que nos muestre el estado del mismo en una de sus ventanitas con la siguiente orden:

M-x magit-status RET
magitStatus

La ventanita de estado

Sigue leyendo

Lo que he aprendido: el ratón y org mode

Como ya os he dicho más veces uso Emacs de una manera un tanto curiosa, con su GUI y hasta con el ratón porque al final me muevo en un entorno gráfico y me encaja mejor así con el resto de herramientas (sí, uso cosas que no son Emacs). Parece ser que yo no soy la única, ya que hay modos de Emacs que añaden funcionalidades molonas al ratón y entre ellos mi favorito es org-mouse.el, que como su nombre indica se usa en mi amado modo Org.

Sirve para lo siguiente:

  • Nos muestra un menú contextual al hacer click derecho en diferentes elementos
  • Permite abrir y cerrar árboles con un click izquierdo
  • Marca casillas de las listas de tareas al hacer click izquierdo sobre ellas

Parece poca cosa pero hacen de Emacs un lugar más amigable para los novatillos, los desmemoriados o los vagos, tres categorías a las que pertenezco.

Para activarlo solo hace falta añadir una línea al archivo de configuración:

;; Cargar org-mouse
(require 'org-mouse)

Podéis ver este modo en acción en este screencast1:

Referencias

How to setup org-mouse to intuitively toggle checkboxes on org-mode? en StackExchange

5.6 Checkboxes en el manual de Org


Os dejo con una canción que he localizado por casualidad:

Lo que he aprendido: ecuaciones rápidas con CDLaTeX

Ando últimamente bastante liadilla y agradezco cualquier herramienta que me facilite la vida. Una que me hace muy feliz es el modo menor de Emacs CDLaTeX, que acabo de descubrir y se ha convertido en imprescindible en mi día a día. En concreto lo uso en combinación con el modo Org, que trae su propia variante org-cdlatex. Paso a hablaros sobre ello.

El modo CDLaTeX

Tal y como dice en su README, CDLaTeX es un modo menor para la inserción rápida de entornos y movidas matemáticas en LaTeX:

CDLaTeX is a minor mode for Emacs supporting fast insertion of environment templates and math stuff in LaTeX

Lo escribió el mismo señor que el modo Org, Carsten Dominik, y se puede encontrar tanto en MELPA como en Github. Requiere texmathp.el que dicen que es parte de Emacs a partir de la versión 21.3, pero yo tuve que instalar AucTeX (que también lo contiene) para hacerlo funcionar.

Ecuaciones rápidas

La idea de este modo es evitarnos el tedio de escribir desde cero las ecuaciones de LaTeX y los símbolos matemáticos. Es muy listo y sabe cuándo estamos dentro de un bloque matemático (entre \begin{equation} y \end{equation}) y cuándo no, y así activa y desactiva funcionalidades según el contexto. Por ejemplo, al escribir un guión bajo nos añade automáticamente las llaves para que escribamos dentro el subíndice.

La tecla principal de este modo es el TAB, que hace de todo:

  • Predice comandos: si lo pulsamos después de haber escrito una parte de un comando nos lo completa. Me encanta porque equ + TAB inserta directamente un entorno de ecuaciones, ¡así de fácil! Podemos ver todas abreviaturas con M-x cdlatex-command-help.

  • Reduce subíndices y superíndices simples: nos escribe automáticamente las llaves para los subíndices y superíndices pero podemos eliminarlas para los casos de una sola letra pulsando el TAB delante de la llave de cierre.

  • Mueve el cursor a la siguiente unidad de interés: podemos avanzar por las ecuaciones con el TAB alegremente.

No solo del TAB se vive, también tenemos otras funcionalidades chulas:

  • Entornos rápidos C-c { nos mete entornos como align dentro del bloque de ecuaciones.

  • El apóstrofe modifica el carácter anterior, añadiendo un punto encima u otras movidas locas matemáticas. Si lo pulsamos y esperamos un poco nos aparece un cuadro con todas las opciones disponibles.

  • El acento grave introduce comandos, por ejemplo `a escribe \alpha tanto dentro como fuera del entorno matemático, `b escribe \beta y así sucesivamente. Varios acentos cambian de nivel, tomando el caso de la letra l como ejemplo, precedida de un acento escribe \lambda, con dos acentos \ell, y con tres \log. Lo que es utilísimo para los que escribirmos mucha mate. ¡Un truco! Para escribir letras griegas mayúsculas, tras introducir una con el acento grave y la letra, podemos usar M-b para movernos al inicio de la palabra y M-c para que Emacs nos la ponga en mayúsculas. Es fantástico. Al igual que el apóstrofe, si esperamos un poco después de pulsarlos nos aparece un cuadro con las opciones.

Lo único que me queda por contaros es que si este modo os conquista como a mí, podéis activarlo siempre con Org añadiendo esta línea al archivo de configuración:

;; Activar CDLaTeX con Org mode
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)

¡Y hala! ¡Productividad a tope! 😀

¿Vosotras qué modos y herramientas usáis para simplificar vuestro trabajo? Ilustradme, porfis.

Referencias

org-cdlatex en el manual de Org

CDLaTeX en GitHub


Últimamente estoy dejando salir a mi celta interior:

Mi entorno de trabajo en Emacs

Estoy fusionando mi amor por Emacs con mi objetivo de ser más productiva (¡todavía más!) al trabajar. Esto pasa evidentemente por perder menos tiempo, que se traduce a su vez en tres cosas:

  • Usar lo menos posible el ratón, con la ventaja añadida de que mis pobres muñecas sufren mucho menos.

  • Salir lo menos posible de Emacs, si Emacs puede hacer todo ¿por qué abandonarlo? Esto conlleva afinar la configuración, algo que considero una inversión a largo plazo (y me divierte lo suyo, además).

  • Automatizar tareas repetitivas, reducir el tiempo gastado en repetir lo mismo una y otra vez es generar tiempo para otras cosas. También se reduce el número de veces que pulso una combinación de teclas determinada y, por lo tanto, mis manitas están más felices.

Un tema interesante que encaja en las tres categorías anteriores es tener preparado un entorno de trabajo al abrir Emacs la primera vez del día. ¿Cómo hago esto? Con una lista de tareas escrita en org que se abre automáticamente al iniciar Emacs. Como curro en diferentes historietas, en esta lista describo lo que tengo que hacer y enlazo los archivos en los que estoy trabajando. De esta manera, me sirve un poco como acta del trabajo que voy realizando y me permite tener localizados los documentos de los diferentes proyectos en los que ando.

Además, basta configurar con qué programa debe abrirse qué tipo de archivo para que tengamos ya la herramienta correcta dispuesta para que le demos caña, cuando no podemos usar directamente Emacs, claro.

Para que la lista de tareas nos aparezca al abrir Emacs solo hay que añadir una línea al final de nuestro archivo de configuración:

(find-file "RUTA_A_LA_LISTA")

He llegado a este sistema de pura casualidad, pero la verdad es que se adapta muy bien a mis necesidades. Otro día os hablaré más en detalle sobre cómo uso Org y compartiré con vosotros mi configuración completa para este modo.

Tengo curiosidad, ¿cómo os organizáis vosotros? ¡Contadme, contadme!

Referencias

A Baby Steps Guide to Managing Your Tasks with Org


Suena mientras escribo esto:

Lo que he aprendido: imágenes inline en Org

¡Hola, gentes! ¡He aprendido nuevas cosas de Org!

Resulta que si hemos instalado Emacs con soporte para imágenes, podemos decirle a Org mode que nos las muestre dentro de nuestro documento. Esto es maravilloso porque implica que no es necesario que exportemos a HTML o pdf para tener un documento legible sino que desde dentro del propio Org podemos editar y ver directamente todo. Veamos cómo.

Mostrar las imágenes

Como ya sabemos, se pueden insertar imágenes en Org con la siguiente línea:

[[file:RUTA_A_IMAGEN]]

Tenemos unas funciones, que invocamos con M-x seguido de su correspondiente nombre, que nos permiten decidir si Org nos muestra la imagen a la que hacemos referencia en lugar de la línea esa que tan bien conocemos:

  • org-display-inline-images: muestra las imágenes
  • org-redisplay-inline-images: vuelve a cargar las imágenes
  • org-toggle-inline-images (C-c C-x C-v): si las estaba mostrando las deja de mostrar y viceversa
  • org-remove-inline-images: deja de mostrar las imágenes

El lugar de usar estas funciones todo el rato, también se puede establecer el comportamiento para determinado documento mediante una variable de inicio:

#+STARTUP: inlineimages

Mostrará las imágenes que hemos enlazado. En cambio:

#+STARTUP:noinlineimages

No las mostrará. Para que nos recargue el documento y hagan efecto los cambios en estas variables es útil la combinación C-x C-v (buscar archivo alternativo), una de mis favoritas.

Seguir leyendo →

Lo que he aprendido: abrir archivos con un programa externo en Org

¡Ay el modo Org! ¡Cómo me encanta! Cada día le encuentro más funcionalidades, creo que llegará un momento en el que solo usaré este modo para todas mis actividades, me da un poco de miedito.

Acabo de descubrir que podemos decirle a Org que nos abra los archivos que enlazamos en un documento con la aplicación que nos parezca. Esto me ha parecido megaútil para referenciar en mi lista de tareas qué he hecho y dónde está. Así, puedo escribir las conclusiones que he sacado de determinado tema y enlazar el script de Matlab en el que lo investigo o el paper donde he leído el método.

Esta configuración de con qué programa se abre qué tipo de archivo está guardada en la variable org-file-apps, que podemos describir con:

C-h v org-file-apps

o bien:

M-x describe-variable org-file-apps

Nos dice lo siguiente:

org-file-apps is a variable defined in ‘org.el’.
Its value is ((auto-mode . emacs)
(“\.mm\'” . default)
(“\.x?html?\'” . default)
(“\.pdf\'” . default))

External applications for opening ‘file:path’ items in a document. Org-mode uses system defaults for different file types, but you can use this variable to set the application for a given file extension. The entries in this list are cons cells where the car identifies files and the cdr the corresponding command.

Sigue leyendo