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í:
Ahora, lo que pienso es poner el script en la carpeta TextWrangler Scripts:
Debes poner el script en la "/Users/yourName/Library/Application Support/TextWrangler/Scripts"
carpeta .
Después:
Preview
aplicació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.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.
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:
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.
M. Beausoleil