AppleScript para crear un formato de espaciado como "S P A C I N G"?

2

Para formatear documentos de texto de una manera más legible, sería bueno formatear textos seleccionados mediante un script de Apple ejecutado a través de los servicios del menú contextual de la siguiente manera:

  1. seleccione "texto" con el cursor
  2. seleccione el menú de contexto / servicios Espaciado (a crear)
  3. el texto seleccionado se formateará a "T E X T"

¿Alguien tiene los conocimientos para programar un script de este tipo?

    
pregunta user139574 13.08.2015 - 12:28

2 respuestas

3

AppleScript para expandir texto

El siguiente fragmento de código AppleScript agrega un espacio entre cada carácter de una cadena. Copie y pegue este código en Aplicaciones > Utilidades > Editor de secuencias de comandos para probarlo:

set myText to "hello world"
set myResult to ""

repeat with c in every character in myText
    set myResult to myResult & " " & c
end repeat

display dialog myResult

Servicio de automatización

Al usar este script, puede usar Aplicaciones > Automator para crear su servicio de menú contextual.

  1. EjecutarAutomator.app
  2. Creaunnuevoflujodetrabajo,seleccionaServicio
  3. AgregaunaacciónEjecutarAppleScript
  4. Copiaypegaenelscript:

    onrun{input,parameters}setmyTexttoinputasstringsetmyResultto""
    
        repeat with c in every character in myText
            set myResult to ((myResult & " " & c) as string)
        end repeat
    
        -- Convert to upper case using 'tr'
        set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"
    
        return myResult
    end run
    
  5. Seleccionar La salida reemplaza el texto seleccionado

  6. Guarde y pruebe su nuevo servicio
respondido por el Graham Miln 13.08.2015 - 13:28
1

Para que el texto seleccionado se convierta en mayúsculas, además de tener un espacio agregado entre cada carácter, agregue la siguiente línea al guión publicado por Graham Miln.

set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"

Por lo tanto, en Automator sería:

on run {input, parameters}

    set myText to input as string
    set myResult to ""

    repeat with c in every character in myText
        set myResult to ((myResult & " " & c) as string)
    end repeat

    set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"

    return myResult

end run
    
respondido por el user3439894 13.08.2015 - 16:22

Lea otras preguntas en las etiquetas