Invio di comandi da TextWrangler al terminale

1

Voglio inviare comandi da TextWrangler al terminale. Anche se ho trovato questo , non lo faccio capisco come funziona, dal momento che sono nuovo di zecca per Unix ed eseguo gli Applescript.

tell application "TextWrangler"
    set the_selection to (selection of front window as string)
    if (the_selection) is "" then
        set the_selection to line (get startLine of selection) of front window as string
    end if
end tell

tell application "Terminal"
    do script with command the_selection in window 1
end tell

Ho salvato un oggetto Applescript simile al seguente:

Ora,quellochepensoèmettereloscriptnellacartellaScriptdiTextWrangler:

  1. Ma allora, come posso inviare comandi a Terminal.app?
  2. Come posso premere cmd + Invio per inviare una riga da TextWrangler al Terminale?
posta M. Beausoleil 23.07.2016 - 04:48
fonte

2 risposte

2

Devi inserire lo script nella cartella "/Users/yourName/Library/Application Support/TextWrangler/Scripts"

Dopo ciò:

  • Apri le preferenze di TextWrangler
  • Seleziona "Menu e scorciatoie" - > "Script" - > "il tuo script" da aggiungere il tuo collegamento allo script
  • TextWrangler accetta i tasti (cmd + invio) come collegamento
risposta data 23.07.2016 - 17:01
fonte
1

Per utilizzare uno script di AppleScript nel menu Script di TextWrangler, è necessario (o un collegamento ad esso) nella cartella Script di TextWrangler situata in, ~ / Libreria / Application Support / TextWrangler / Script in modo che appaia nel menu. Nota: il "~" in quel percorso è la cartella Home e la cartella Libreria potrebbe non essere visibile. È possibile aprirlo dal menu Script di TextWrangler, aprire il comando Cartella script e inserire lo script o il collegamento allo script da qualsiasi posizione di salvataggio.

Allo scopo di rispondere a questa domanda ho creato un AppleScript chiamato Esegui una o più linee selezionate in Terminal.scpt e lo colloco nella cartella Script di TextWrangler ed è ora disponibile nel menu Script in TextWrangle come mostra nell'immagine qui sotto.

Dettoquesto,loscriptchehai,comescritto,potrebbenonriuscirevistocheTerminalpuòessereunpo'pignolo.Inaltreparole,seTerminalevienechiusoquandosiesegueloscript,allorailcodicecomescrittopuòprodurreunerrore,adesempio:"Si è verificato un errore di script: il terminale ha ricevuto un errore : Impossibile ottenere la finestra 1. "

Anche dire che Terminal per attivare non ha aperto una finestra come fa quando apri il Terminale dal riquadro del Dock che ho impostato su "Keep in Dock" e otterrei l'errore di cui sopra. Quindi una query di Google ha fornito molte informazioni utili. Così ho sperimentato alcune soluzioni diverse che ho visto e il codice che sto usando è mostrato di seguito.

tell application "TextWrangler"
    activate
    set the_selection to (selection of front window as string)
    if (the_selection) is "" then
        set the_selection to line (get startLine of selection) of front window as string
    end if
end tell

tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    -- delay 0.5
    do script with command the_selection in front window
end tell

Nota che ho commentato il delay comando con -- e potrebbe o non potrebbe essere necessario a seconda se Terminal è inizialmente chiuso e quanto rallenta il tuo sistema. Il valore è espresso in decimi secondi . Puoi decommentare e modificare se / come necessario.

Immagine del codice che mostra l'evidenziazione sintattica:

Nota: questo è stato testato sotto OS X 10.8.5 e TextWrangler v4.5.9 (3390) e potrebbe reagire in modo diverso nelle altre versioni di OS X e / TextWrangler.

    
risposta data 23.07.2016 - 17:41
fonte

Leggi altre domande sui tag