Enviando comandos desde TextWrangler al terminal

1

Quiero enviar comandos desde TextWrangler al terminal. Incluso si encontré esto , no entienda cómo funciona eso, ya que soy nuevo en Unix y ejecuto Applescripts.

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

Guardé un Applescript que se ve así:

Ahora,loquecreoescolocarelscriptenlacarpetadescriptsdeTextWrangler:

  1. Pero entonces, ¿cómo envío comandos a Terminal.app?
  2. ¿Cómo puedo presionar cmd + enter para enviar una línea desde TextWrangler a la Terminal?
pregunta M. Beausoleil 23.07.2016 - 04:48

2 respuestas

2

Debes poner el script en la carpeta "/Users/yourName/Library/Application Support/TextWrangler/Scripts"

Después de eso:

  • Abre las preferencias del TextWrangler
  • Selecciona "Menús & Accesos directos" - > "Scripts" - > "tu script" para agregar su acceso directo al script
  • TextWrangler acepta las teclas (cmd + enter) como acceso directo
respondido por el jackjr300 23.07.2016 - 17:01
1

Para poder utilizar un script de AppleScript en el menú Script de TextWrangler's, éste (o un enlace) debe estar en la carpeta Script de TextWrangler ubicada en, ~ / Library / Application Support / TextWrangler / Scripts para que aparezca en el menú. Nota: el "~" en esa ruta es su carpeta de inicio y la carpeta de la biblioteca puede no estar visible. Puede abrirlo desde el menú Script de TextWrangler, el comando Abrir carpeta de scripts y colocar el script o un enlace al script desde donde lo guardó.

Para responder a esta pregunta, creé un AppleScript llamado Ejecutar línea (s) seleccionada (s) en Terminal.scpt y lo coloqué en la carpeta Script de TextWrangler y ahora está disponible en el menú Script en TextWrangle como mostrar en la imagen de abajo.

Dichoesto,elscriptquetiene,comoestáescrito,puedefallar,yaqueTerminalpuedeserunpocometiculoso.Enotraspalabras,silaTerminalsecierraalejecutarelscript,entonceselcódigotalcomoestáescritopuedeproducirunerror,porejemplo:"Se produjo un error en la secuencia de comandos: la Terminal obtuvo un error : No se puede obtener la ventana 1. "

Incluso cuando le dije a Terminal que activara no abría una ventana como lo hace al abrir Terminal desde el Dock Tile, me puse "Mantener en Dock" y obtendré el error mencionado anteriormente. Así que una consulta de Google dio mucha información útil. Así que experimenté con algunas soluciones diferentes que vi y el código que estoy usando se muestra a continuación.

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

Tenga en cuenta que he comentado el comando delay con -- y puede o no ser necesario dependiendo de si el Terminal está inicialmente cerrado y de la lentitud con que responde su sistema. El valor está en segundos expresado de manera decimal. Puede descomentar y modificar si es necesario.

Imagen del código que muestra el resaltado sintáctico:

Nota: Esto se probó en OS X 10.8.5 y TextWrangler v4.5.9 (3390) y puede reaccionar de manera diferente en otras versiones de OS X y / o TextWrangler.

    
respondido por el user3439894 23.07.2016 - 17:41

Lea otras preguntas en las etiquetas