Para utilizar un AppleScript script en el menú script de TextWrangler, debe estar (o un enlace a él) en la carpeta script de TextWrangler situada 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 ser visible. Puede abrirla desde el menú script de TextWrangler, comando Abrir Carpeta y colocar el script o un enlace a la script desde donde lo hayas guardado.
Para responder a esta pregunta he creado un AppleScript llamado Ejecutar la(s) línea(s) seleccionada(s) en Terminal.scpt y lo colocó en la carpeta script de TextWrangle y ahora está disponible en el menú script de TextWrangle como se muestra en la imagen de abajo.
![TW_Script_Menu.png]()
Dicho esto, el script que tienes, tal y como está escrito puede fallar ya que Terminal puede ser un poco quisquilloso. En otras palabras, si el Terminal está cerrado cuando se ejecuta el script entonces el código tal y como está escrito puede producir un error, por ejemplo "Se ha producido un error de escritura: La terminal ha recibido un error: No se puede obtener la ventana 1".
Incluso diciéndole a Terminal que se activara no se abría una ventana como lo hace al abrir Terminal desde el Mosaico del Dock que tengo configurado como "Mantener en el Dock" y me daba el error antes mencionado. Así que una consulta en Google dio mucha información útil. Así que experimenté con algunas soluciones diferentes que vi y la código que estoy utilizando 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á cerrada inicialmente y o de la lentitud con la que responda su sistema. El valor está en segundos expresado de forma decimal. Puede descomentar y modificar si es necesario.
Imagen de código mostrando el resaltado sintáctico:
![code showing syntactical highlighting]()
Nota: Esto fue probado bajo 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.
0 votos
Quiero ejecutar mi archivo línea por línea. Si quiero registrar todo lo que estoy haciendo para probar diferentes funciones sin ejecutar todo el script.