Envío de comandos desde TextWrangler (BBEdit) a la terminal

Quiero enviar comandos desde TextWrangler (o BBEdit) a la terminal. Incluso si encontré esto , no entiendo cómo funciona, ya que soy nuevo en Unix y ejecuto Applescripts.

tell application "BBEdit"
    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í:ingrese la descripción de la imagen aquí

Ahora, lo que pienso es poner el script en la carpeta TextWrangler Scripts:ingrese la descripción de la imagen aquí

  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?
Quiero ejecutar mi archivo línea por línea. Si quiero grabar todo lo que estoy haciendo para probar diferentes funciones sin ejecutar todo el script

Respuestas (2)

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

Después:

  • Abre las preferencias del TextWrangler
  • Seleccione "Menús y accesos directos" --> "Guiones" --> "su guión" para agregar su acceso directo al guión
  • TextWrangler acepta las teclas (cmd + enter) como acceso directoingrese la descripción de la imagen aquí
¡Esto es exactamente lo que necesitaba! Supongo que ahora podemos usar el autocompletado de alguna manera... Voy a averiguarlo. ¡Gracias!
@ jackjr300, ¿En qué aplicación procesó esa imagen de Preferencias para agregar las flechas, particularmente la flecha curva?
@ user3439894, uso la Previewaplicación en El Capitan , menú " Herramientas " --> " Anotar " --> " Flecha ". - Luego arrastre uno de los controladores azules para mover la flecha o cambiar su tamaño, arrastre el controlador verde para hacer una curva. - Puede cambiar el estilo de la forma, puede agregar texto al principio o al final de la flecha.
@ jackjr300, gracias por la información sobre la anotación de la imagen. También gracias por el consejo sobre la asignación de comandos de entrada desde las Preferencias de TextWrangler. Intenté asignar en las Preferencias del sistema de Apple> Teclado> Accesos directos de teclado> Accesos directos de aplicaciones y en OS X 10.8.5 y, aunque técnicamente puedo asignar el comando de entrada para el comando del menú del script en TextWrangler, no funciona. Elimina lo que está seleccionado e inserta una nueva línea, lo que por supuesto anula el propósito. Sin embargo, al hacerlo desde las Preferencias de TextWrangler, funciona. Así que gracias por todo. +1

Para usar un script AppleScript en el menú Script de TextWrangler, debe estar (o un enlace a él) 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 es posible que la carpeta Biblioteca no esté visible. Puede abrirlo desde el menú Script de TextWrangler, comando Abrir carpeta de scripts y colocar el script o vincular al script desde donde lo guardó.

Con el fin de 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 se muestra en la imagen a continuación.

TW_Script_Menú.png

Dicho esto, el script que tiene, tal como está escrito, puede fallar ya que la Terminal puede ser un poco complicada. En otras palabras, si la Terminal está cerrada al ejecutar el script , entonces el código tal como está escrito puede producir un error, por ejemplo: "Ha ocurrido un error de scripting: Terminal obtuvo un error: No se puede obtener la ventana 1".

Incluso decirle a Terminal que se active no abrió una ventana como lo hace cuando abro Terminal desde el Dock Tile que configuré en "Keep in Dock" y obtendría el error antes mencionado. Entonces, una consulta de Google arrojó 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 delay comando con --y puede o no ser necesario dependiendo de si la Terminal está inicialmente cerrada o qué tan lento responde su sistema. El valor es en segundos expresado decimalmente. Puede descomentar y modificar si es necesario.

Imagen de código que muestra resaltado sintáctico:

código que muestra 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 o TextWrangler.