AppleScript per creare un formato di spaziatura come "S P A C I N G"?

2

Per formattare i documenti di testo in un modo più leggibile, sarebbe bello formattare i testi selezionati con uno script Apple eseguito tramite i servizi del menu di scelta rapida nel modo seguente:

  1. seleziona "testo" con il cursore
  2. seleziona menu contestuale / servizi Spaziatura (da creare)
  3. il testo selezionato verrà formattato in "T E X T"

Qualcuno ha il know-how per programmare un simile script?

    
posta user139574 13.08.2015 - 12:28
fonte

2 risposte

3

AppleScript per espandere il testo

Il seguente frammento di AppleScript aggiunge uno spazio tra ogni carattere di una stringa. Copia e incolla questo codice in Applicazioni > Utilità > Script Editor per provarlo:

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

Servizio di automazione

Usando questo script, puoi usare Applicazioni > Automator per creare il tuo menu di scelta rapida.

  1. AvviaAutomator.app
  2. Creaunnuovoflussodilavoro,selezionaServizio
  3. Aggiungiun'azioneEseguiAppleScript
  4. Copiaeincollanelloscript:

    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. Seleziona L'output sostituisce il testo selezionato

  6. Salva e prova il tuo nuovo servizio
risposta data 13.08.2015 - 13:28
fonte
1

Per fare in modo che il testo selezionato venga convertito in maiuscolo, insieme allo spazio aggiunto tra ogni carattere, aggiungi la seguente riga allo script pubblicato da Graham Miln.

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

Quindi Automator sarebbe:

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
    
risposta data 13.08.2015 - 16:22
fonte

Leggi altre domande sui tag