
Seguimos con aplicaciones prácticas de AutoHotkey, y cada vez lo vamos complicando más.
Este artículo es una continuación del anterior de AutoHotkey: macros avanzadas (3), que me quedó demasiado extenso para que fuera un artículo, y decidí dividirlo en dos.
Si llegas aquí sin haber pasado por los anteriores artículos de AutoHotkey, te recomiendo que les eches un vistazo antes:
- AutoHotkey: una herramienta de productividad (Introducción) + vídeo de YouTube para ver a AutoHotkey en acción
- Autocorrección de Word con AutoHotkey + vídeo de YouTube
- AutoHotkey: macros avanzadas (3)
Ahora puedes seguir con las nuevas macros:
Ángulo de 90° y temperatura de 37 °C
Sin ser lingüista, una de las cosas que más me choca es la confusión tan extendida que hay entre el símbolo de grado centígrado o de inclinación (°) y la o volada (º) para los ordinales.
🙁
Tanto en el teclado español para España como para Latinoamérica, es fácil teclear directamente la o volada, porque está a la izquierda de la tecla «1». En cambio, está complicado teclear el símbolo de grados centígrado (°), pero como se parece a la o volada (º), muchos usan la o volada para el grado centígrado.
Lo de que «se parecen» es un decir, para mí son como el sol y la luna, y depende mucho del tipo de letra…
No, no quiero saber cómo has escrito el símbolo de grado hasta ahora, pero te voy a dar la forma más fácil que he encontrado. ¿Te lo imaginas? Sí, con AutoHotkey:
;Símbolo de grado centígrado. No es el ordinal º, sino ° :*?:gggg::°
Escribes cuatro ges seguidas, y se sustituyen automáticamente por el símbolo de grado centígrado (o de grado sexagesimal, que coinciden).
Lo vamos a complicar un poco más: ahora queremos tener el símbolo de grado precedido por un espacio duro, es decir un espacio que liga una palabra con la siguiente y hace que estén siempre en el mismo renglón.
El siguiente código lo hace de maravilla:
;Símbolo de centígrado + espacio duro
:*?:gggc::
;Inserta un espacio duro. Funciona en Microsoft Word y SDL Trados Studio
Send {Asc 0160}
;Inserta el símbolo de grado centígrado y la «C» de Celsius
send °C
return
Como ves, volvemos a usar la función Send, esta vez para enviar el código ASCII 0160, que se corresponde con el espacio duro.
La función Send la explicamos en el anterior artículo de AutoHotkey. Échale un vistazo para refrescar lo que era…
Después de insertar el espacio duro, se inserta el símbolo de grado centígrado y la ce mayúscula.
Con estas dos macros, si tecleas «90gggg», se extenderá a «90°».
Si tecleas «37gggc», la macro lo sustituirá po «37 °C», con un espacio duro, como debe ser…
Interrogaciones, admiraciones, llaves, paréntesis y corchetes
Lo que sigue son también líneas de código reales que uso día a día:
Interrogaciones
Encuentro útil escribir solo el signo de interrogación de apertura «¿» y que automáticamente consiga la pareja «¿?» y, como extra, colocar el cursor en el centro para seguir escribiendo.
El código para conseguir esto sería así:
;cerrar interrogaciones
:*?:¿::¿?{left}
Esta línea hace lo siguiente:
- Al escribir «¿» con tu teclado, se escribe el signo de interrogación de apertura «¿» seguido del de cierre.
- Finalmente, {left}, en la misma línea, mueve el cursor un espacio a la izquierda.
Ya vimos en el anterior artículo de AutoHotkey, que se puede hacer lo mismo con Send {left} (pero en una línea distinta de la macro).
Admiraciones
Lo mismo para el signo de admiración:
;cerrar admiraciones
:*?:¡::¡{!}{left}
Ojo, que no uso la anterior macro para las admiraciones. No porque no funcione, sino porque con el uso, vi que podía anticipar bien las frases interrogativas, pero no así las admirativas, así que acabé por quitar esta línea de mi archivo de macros de AutoHotkey. Te la pongo de todas formas para que juzgues por ti mismo su utilidad y para que veas cómo es la cadena de sustitución.
Como ves, la admiración de apertura es simplemente ¡, mientras que la de cierre es {!}. La complicación que ves se debe a que el signo de admiración de cierre tiene un significado especial en AutoHotkey.
Llaves
Lo mismo, pero para el símbolo de llave «{»: escribes el de apertura y que se ponga automáticamente el de cierre:
;cerrar llaves
:*?:{::{{}{}}{left}
Como ves, la llave de apertura es {{}, mientras que la de cierre es {}}. La complicación que ves se debe a que las llaves tienen un significado especial en AutoHotkey, y hay que encerrarlas entre llaves.
Paréntesis y corchetes
Lo mismo para los paréntesis (es una gozada escribir el de apertura, y tener automáticamente el de cierre):
;cerrar paréntesis
:*?:(::(){left}
Ídem con los corchetes:
;cerrar corchetes
*?:[::[]{left}
Ya vamos terminando esta colección más avanzada de macros; espero que vayas «pillando el truco» de AutoHotkey.
CO2 o CO₂, ¡esa es la cuestión!
He dejado para el final, la macro más complicada de esta serie.
Antes de seguir adelante, te recomiendo haber comprendido la función Send, explicada en el anterior artículo de AutoHotkey. Si no sabes lo que es, por favor, échale por lo menos un vistazo.
Es una macro muy práctica: se trata de escribir «CO2» y que Word o tu programa TAO escriba automáticamente el «2» con formato de subíndice.
Para Trados Studio sería así:
; macro para pasar CO2 a CO₂ automáticamente
;(En SDL Trados Studio)
:*:CO2::
Send CO2
Send {Shift down}
Send {left}
Send {Shift up}
KeyWait Shift
Send {Ctrl down}
;CTRL++ en SDL Trados Studio.
Send {`+}
Send {Ctrl up}
KeyWait Control
return
O bien, para Word sería así:
; macro para pasar CO2 a CO₂ automáticamente
;(En Microsoft Word)
:*:CO2::
Send CO2
Send {Shift down}
Send {left}
Send {Shift up}
KeyWait Shift
Send {Ctrl down}
;CTRL+= en Microsoft Word.
Send {`=}
Send {Ctrl up}
KeyWait Control
return
La secuencia que sucede cuando escribes «CO2» es la siguiente:
- Primero, se escribe «CO2», sin ningún formato.
- Segundo, se envía la pulsación de teclado MAYÚS y, muy importante, se mantiene pulsada esta tecla. Esto se logra con la línea Send {Shift down}.
- Después, se mueve el cursor una posición a la izquierda. Recuerda que la tecla MAYÚS sigue pulsada. Si lo piensas bien, esto lo que haces cuando seleccionas una letra con el teclado, sin ratón: pulsas la tecla MAYÚS y con la flecha de dirección IZDA te mueves una posición a la izquierda para seleccionar un carácter.
- Ahora, con la línea Send {Shift up} se libera tecla MAYÚS
- Con la línea KeyWait Shift se espera a que realmente se libere la tecla. Esta línea es necesaria porque AutoHotkey puede verse presionado por otros procesos, y solo se pasa a la siguiente línea de código cuando se confirma realmente que se ha levantado la tecla. Si no se hace esta comprobación, es probable que el código te funcione erráticamente: unas veces sí, y otras no…
- Con la línea Send {Ctrl down} se pulsa la tecla CONTROL, y se mantiene pulsada.
- Ahora, si estás trabajando en Word en español, deberás usar esta línea Send {`=}, que envía el símbolo igual «=»), para que el carácter seleccionado (el «2», si has seguido la secuencia) pase a formato subíndice (puedes comprobar que el atajo de Word español es CTRL+=).
Si por el contrario, estás en SDL Trados Studio, deberás usar la línea Send {`+}, (por supuesto, eso si no has cambiado el atajo predeterminado de Studio en Opciones > Accesos directos de teclado > Editor > barra de herramientas de QuickInsert > Subíndice). El atajo de teclado de Studio para formatear un texto como subíndice es CTRL++ (signo más del teclado numérico, puedes comprobarlo en Studio).

En el código de arriba, puedes ver que la línea Send {`=} es en realidad un comentario (comienza por punto y coma), o sea que la macro está preparada para que funcione en tu SDL Trados Studio; ya sabes qué tienes que hacer para que funcione en Microsoft Word, o si quieres poner otro formato cualquiera, ¿verdad?
(En otro artículo más avanzado de AutoHotkey veremos cómo automatizar esto, y que se sepa si estás trabajando en Studio o en Word. Paciencia, hermano…).
Si te preguntas porqué hay un apóstrofo en las líneas Send {`=} y Send {`+} te diré que es porque los caracteres «=» y «+» tienen un significado especial para AutoHotkey. Al poner el apóstrofo, pierden ese significado especial, ¿de acuerdo? - Seguimos con el código… que perdemos el hilo. La línea siguiente, Send {Ctrl up}, libera la tecla CONTROL.
- Se espera otra vez para confirmar que realmente se ha liberado la tecla CONTROL.
- Por último, Return hace terminar la macro iniciada al escribir «CO2».
Vas entiendo lo que hace AutoHotkey, ¿verdad?
Espero que sí; si no, puedes volver a analizar el código y las instrucciones.
Si sigues sin entenderlo, puedes preguntarme e intentaré ayudar, ¿vale?
Ejercicios voluntarios de AutoHotkey
Un artículo tan práctico no podría terminar sin una recomendación de deberes para casa.
🙂
Demuestra que dominas AutoHotkey hasta el nivel tratado en este artículo:
- ¿Sabrías escribir la macro que establece el formato superíndice para el «2» de «x2», es decir, x al cuadrado?
- ¿Sabrías escribir la macro que establece el formato subíndice para el «2» de «H2O», es decir, agua?
¿Algún valiente?
Conclusiones de estas macros avanzadas de AutoHotkey
Con AutoHotkey puedes crear las macros que te interesa utilizar para que tu escritura sea más rápida y precisa. Más rápida, porque necesitas teclear menos; más precisa, porque sabes que una abreviatura se expandirá exactamente a lo que tengas programado.
Por supuesto, puedes usar estas macros, y lo mejor de todo, es que puedes programarte y personalizar tus propias macros, las que a ti te vengan bien.
Es útil tanto para patosos del teclado como para maníacos de la velocidad y la exactitud. Me va bien doblemente…
🙂
¿No me digas que no es una chulada?
Enlaces
Aparte de los enlaces a los artículos anteriores de AutoHotkey, puede ser interesante que tengas en cuenta estos también:
- Enlace para descargarte el ejecutable de AutoHotkey: http://www.ahkscript.org/
- Tutoriales para aprender a escribir atajos de AutoHotkey: http://ahkscript.org/docs/AutoHotkey.htm
- Grados Celsius y otros grados en Fundeu
Si no quieres perderte la siguiente entrega sobre AutoHotkey, con macros aún más avanzadas, apúntate a mi boletín o sígueme en Twitter (@jssprt), y te avisaré en cuanto salga.






que tal jesus, te felicito por tu pagina, actual y muy buena, de casualidad fui a parar en este tema, y es bueno encontrar algo util, tal vez me puedas ayudar quiero un comando para presionar ctrl+shift+alt+p para acticar un programa he intentado muchas cosas en autohotkey y en .bat
gracias.
Hola, Iván:
Me alegro de que te guste el blog.
Para lo que quieres, prueba con estas líneas en AutoHotkey para ejecutar el bloc de notas, por ejemplo:
^!+P::
Run notepad
Return
Si no es una aplicación que está en la ruta del sistema, escribe la ruta completa después de Run, por ejemplo, si quieres ejecutar QuickTime sería así:
^!+P::
Run C:\Program Files (x86)\QuickTime\QuickTimePlayer.exe
Return
¿Te funciona?
Por cierto: lo anterior te funciona para la combinación de teclas CTRL+ALT+MAYÚS+P, pero también funcionará para AltGr+MAYÚS+P (por si te parece más cómodo así). El motivo es que para Windows, la combinación CTRL+ALT es idéntica a la tecla AltGr…
Un saludo desde España.
😉
... Jesús Prieto ...
Excelentes aportes, tengo una duda que espero me puedas ayudar: para un ejercicio que estoy haciendo en Excel necesito hacer una combinación CTRL+SHIFT+INICIO para hacer una selección de celdas y luego SHIF+UP para deseleccionar el título. La última combinación me sale con Send, {SHIFT}+{DOWN} pero no he podido con la primera. Intento con Send, ^{SHIFT}+{HOME} y no me funciona.
Gracias, Juan David:
Si quieres, puedo darte la solución por 20 euros. Si estás de acuerdo, puedes hacer el pago por PayPal.
Si prefieres hacerlo por ti mismo, te animo a ello y te digo que es fácil una vez resuelto el problema probando unas cuantas veces con AutoHotkey.
Un abrazo desde España,
… Jesús Prieto …