Creación de teclas de acceso rápido o método abreviado de teclado para pegar frases de texto específicas en Mac OSX


21

Tengo una frase de texto (en realidad, varias fases) que uso con frecuencia en múltiples aplicaciones. Me gustaría crear un atajo de teclado o una tecla de acceso rápido que pegue esta frase de texto donde haya colocado el cursor en un campo de entrada de texto (Apple Mail, Microsoft Word, TextEdit, TextWrangler, ventanas del navegador, etc.) en lugar de copiar y pegando de una nota adhesiva.

Prefiero no tener que comprar ninguna aplicación (parece que Keyboard Maestro tiene esta funcionalidad pero parece una tontería pagar $ 36 solo por esto), aunque las aplicaciones gratuitas estarían bien. Intenté buscar en Preferencias del sistema> Teclado> Atajos de teclado, pero no hay una solución obvia, y todos los AppleScripts que encontré parecen no traducirse correctamente para mí. He encontrado otras soluciones para este problema en este foro para usuarios de Windows (como AutoHotKey) pero ninguna para usuarios de Mac.

Respuestas:


16

La forma más fácil de escribir texto con un AppleScript es ejecutar:

tell application "System Events" to keystroke "foo bar"

Puede activar esto con un atajo de teclado creando una nueva Acción rápida (anteriormente llamada Servicio ) en Automator. Configúrelo para que no reciba ninguna entrada y luego arrastre Ejecutar AppleScript desde el panel izquierdo hacia la derecha.

Debe tener un aspecto como este:

Guárdelo y luego asigne un atajo de teclado a este Servicio en Preferencias del sistema »Teclado» Atajos de teclado .


Wow, muchas gracias @slhck! Intenté esto, pero tengo problemas en el último paso. No aparece en el menú "Servicios" cuando voy a "Atajos de teclado" en Preferencias del sistema. Sé que se ejecuta porque cuando abro Automator y presiono Reproducir, el texto se escribe en la aplicación anterior, pero no se mostrará en el servicio, por lo que puedo agregar un atajo de teclado aunque lo haya guardado en mi carpeta Biblioteca> Servicios . Siguiendo el consejo de otros foros que busqué en Google, verifiqué dos veces que la entrada del servicio estaba configurada en "El servicio recibe: no hay entrada" (era) y traté de reiniciar el Finder. ¿Alguna idea?
Ruthie

¿Entonces lo guardaste de Automator? Normalmente debería aparecer en las opciones de Atajos de teclado, en Servicios y General en la parte inferior. ¿Has intentado cerrar sesión y volver a iniciarla, o incluso reiniciar?
slhck

@slhck esto suena como una excelente manera de hacer esto, pero ¿podrías detallar un poco más tu respuesta? No soy fluido con la forma en que funciona Automator, cuando lo ejecuto me pregunta "eligió un tipo para su documento" y luego estoy un poco perdido. Iré con la respuesta de Jonathan Huie por ahora, pero aún implica escribir algo ... ¡Gracias!
MicroMachine

@fabriced Necesita crear un Servicio en Automator.
slhck

2
Creo que esto funciona en un editor de texto, pero no en un campo de texto en un sitio web. ¿Alguien mas?
Eliot

6

El keystrokecomando solo se puede usar para insertar caracteres que se encuentran en el diseño actual del teclado, y hay un retraso visible para cadenas largas de texto. También puede insertar texto directamente:

Ese método tampoco es realmente utilizable. Hay un error en 10.7 y 10.8 donde los accesos directos para los servicios de Automator no siempre funcionan hasta que pasa el cursor sobre el menú de servicios.

He usado FastScripts para asignar este script a F3:

try
    set old to the clipboard as record
end try
try
    tell application "System Events"
        key code 123 using {option down, shift down}
        keystroke "c" using command down
    end tell
    delay 0.05
    set input to the clipboard
    read POSIX file "/Users/lauri/Notes/snippets.txt" as «class utf8» using delimiter linefeed
    repeat with p in result
        considering case
            if p starts with (input & " ") then
                set the clipboard to text ((offset of space in p) + 1) thru -1 of p
                tell application "System Events" to keystroke "v" using command down
                delay 0.05
                exit repeat
            end if
        end considering
    end repeat
end try
try
    set the clipboard to old
end try

snippets.txt se parece a esto:

m name@example.com
cmd ⌘

Otra opción es usar DefaultKeyBinding.dict . Esto haría que ⌥M o ⌥X ym insertaran una dirección de correo electrónico:

{
    "~m" = (insertText:, "name@example.com");
    "~x" = {
        "m" = ("insertText:", "name@example.com");
    };
}

También puede agregar texto personalizado a los elementos emergentes que se muestran al mantener presionadas las teclas. Ver esta pregunta .


2

Busque una aplicación llamada "Textexpander" que le permite definir frases de texto como @dd que, cuando se escribe, se expandirá al contenido definido, en ese caso, la fecha real.

AFAIK es Shareware. Por lo tanto, en realidad no es gratuito, pero el modo de demostración no tiene límite de tiempo.


Solo una nota rápida en caso de que sea útil para otros: TextExpander no funciona en las ventanas de terminal X11.
ggkmath

2

La aplicación Alfred le permite hacer esto, además de muchas otras cosas, utilizando las funciones Workflow y Snippets. Uso Alfred todo el tiempo y lo recomiendo. Para desbloquear Workflows, debe pagar una licencia de Powerpack, pero no se arrepentirá. 😉


Estoy de acuerdo, esta es una de las aplicaciones más útiles que cualquiera que tenga una Mac debería tener. Migré completamente de los servicios personalizados de Automator a Alfred.
Slhck

1

Simplemente haga clic en: Preferencias del sistema, Teclado, Texto e ingrese su atajo y frase


1
Me gusta esta respuesta, pero en realidad no permite "atajo de teclado" o "tecla de acceso rápido", todavía hay que ingresar un texto (y no una combinación de teclas) que la máquina reemplaza.
MicroMachine

1
Esto solo parece funcionar en algunas aplicaciones seleccionadas. No funciona en la mayoría de los lugares que me gustaría, por ejemplo, campos de entrada del navegador, mi cliente de correo (Thunderbird), Terminal, etc.
No entre en pánico el

0

Un teclado separado llamado Teclado marciano contendrá cadenas de texto como oraciones e incluso párrafos cortos. Le ahorrará escribir molestas pulsaciones molestas que escribe una y otra vez, día tras día. Las teclas funcionan como teclas "pegar". Tiene la capacidad de almacenar todos los accesos directos en Word en un solo teclado, usando las teclas shift layer. Es principalmente para uso profesional, por lo que es un poco caro.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.