2 votos

Cambio de texto a través de un shell Perl basado en servicios scripts en Atajos en MacOS 12 Monterey

Tengo un puñado de acciones de Automator que estoy tratando de portar a Shortcuts. Una de ellas funciona así:

  1. Selecciono un texto en una aplicación.
  2. Hago clic con el botón derecho del ratón en el texto seleccionado y selecciono Services Prefix With Arrows .
  3. El texto tiene ahora > en el borde izquierdo de cada línea (lo utilizo para bloquear rápidamente el texto de Markdown).

Todo esto se maneja, en su núcleo, con un corto Perl script:

while (<>) {
    $_ =~ s/^(.*)$/\> \1/m;
    print;
}

En Automator, todo se ve así:

Prefix with Arrows Quick Action Sin embargo, he estado intentando portar esta acción a los accesos directos en Monterey, y no estoy teniendo mucho éxito. He hecho un nuevo acceso directo, llamado Stick Arrows In Front que intenta replicar la funcionalidad sin éxito. El código Perl es exactamente el mismo. Este es el aspecto del resto:

Stick Arrows In Front shortcut

Sin embargo, cuando ejecuto mi acceso directo mientras tengo el texto seleccionado, el texto no cambia en absoluto.

¿Estoy haciendo algo mal y/o debo presentar un Radar?

1voto

Milan Puntos 5703

Me imaginé algo parecido. La pieza que faltaba parecía ser añadir un Stop and output hasta el final. El problema: esto sólo funciona después de una acción JXA ( Run JavaScript for Automation ), no un Run Shell Script acción.

The final Shortcut

El código:

function run(input, parameters) {
    const text = input[0][0];
    const lines = text.split('\n');
    const prefixedLines = lines.map(l => `> ${l}\n`);
    return ''.concat(...prefixedLines);
}

Este acceso directo no mantiene el texto seleccionado después de que se haya ejecutado (a diferencia de la acción de Automator), pero eso no es un problema para mí.

Además, se puede simplemente modificar input[0][0] y devuelve todo el input variable, pero esto funciona igual de bien para mis propósitos.

0voto

Tony Rowlett Puntos 1

Intenté tu primer ejemplo usando la aplicación de Notas, y no funcionó hasta que le dije "Crear nota con" que funcionó pero terminas con una nueva nota. Si le dices "Mostrar hoja de composición" puedes hacer que se añada a la nota existente, pero esencialmente obtienes tu texto duplicado, el original y el modificado. No estoy seguro de que eso sea útil, pero al menos tu código perl sigue funcionando como antes. Y sólo he podido conseguir que funcione en la aplicación Note.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X