Gastón Ramos

Blog personal

← Volver al blog

Macros copadas de emacs para ruby

Recuperado del archivo original de WordPress.

Hoy aprendí algo re copado, definir macros con Emacs, me pregunto por qué no aprendí esta herramienta increiblemente útil, antes!

Imagen histórica no disponible. Stallman y la Iglesia de Emacs

Es muy sencillo definir una macro, tenés que hacer esto:

C-x (

Luego tipear todo lo que necesitemos que haga la macro y para terminar:

C-x )

Después podemos nombrar la macro con:

M-x name-last-kbd-macro

esto nos permite llamar nuestra macro directamente haciendo:

M-x el-nombre-de-tu-macro

Además podés guardar las macro para que sean persistentes entre sesión y sesión y esto lo podés hacer por ej, abriendo tu archivo .emacs y ejecutando:

M-x insert-kbd-macro

Acá les dejo una serie de macro útiles para ruby, donde además le seteo una combinación de teclas que paso a detallar:

C-c d   -> inserta un debugger
C-c D   -> Borra todas las ocurrencias de debugger
C-c r m -> inserta un bloque map
C-c r e -> inserta un bloque each
C-c r q -> inserta un bloque para una app Cuba, sí cuba! :)

Copien esto dentro de su .emacs

;; Macros copadas para ruby
(fset 'ruby-insert-debugger
   "require 'debugger' ; debugger")

(global-set-key (kbd "C-c d") 'ruby-insert-debugger)

(fset 'ruby-remove-debugger [escape ?x ?r ?e ?p ?l tab ?s tab tab return ?r ?e ?q ?u ?i ?r ?e ? ?\' ?d ?e ?u backspace ?b ?u ?g ?g ?e ?r ?\' ? ?\; ? ?d ?e ?u backspace ?b ?u ?g ?g ?e ?r return return]) (global-set-key (kbd "C-c D") 'ruby-remove-debugger)

(fset 'ruby-insert-map "map{|| }") (global-set-key (kbd "C-c r m") 'ruby-insert-map)

(fset 'ruby-insert-each "each{|| }") (global-set-key (kbd "C-c r e") 'ruby-insert-each)

(fset 'ruby-insert-class [?c ?l ?a ?s ?s return return ?e ?n ?d up up right right ? ])

(global-set-key (kbd "C-c r c") 'ruby-insert-class)

(fset 'ruby-insert-test [?t ?e ?s ?t ? ?\' ?\' ? ?d ?o ? return return ?e ?n ?d up up right right right]) (global-set-key (kbd "C-c r t") 'ruby-insert-test)

(fset 'ruby-insert-cuba-app [?\C-c ?r ?c ?< ? ?C ?u ?a backspace ?b ?a return return ? ? ?d ?e ?f ?i ?n ?e ? ?d ?o return return ? ? ?e ?n ?d up up up up right])

(global-set-key (kbd "C-c r q") 'ruby-insert-test)

No sé si los dije, pero soy fanático de hacer todo con el teclado, casi no uso el mouse.

También puede interesarte

Comentarios del archivo (2)

humitos · 12 de septiembre de 2013

¡Bienvenido al mundo de las macros!

Gastón Ramos · 13 de septiembre de 2013

C-x (
trabajar-por-mi
C-x )

:D

Los comentarios históricos se conservan como archivo. Para conversar hoy, podés escribirme.