1 votos

Envío de comandos desde TextWrangler a la terminal

Quiero enviar comandos desde TextWrangler a la terminal. Aunque Encontré esto No entiendo cómo funciona ya que soy nuevo en Unix y en la ejecución de 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

He guardado un Applescript que se parece a esto: enter image description here

Ahora, lo que se me ocurre es poner el script en la carpeta de TextWrangler: enter image description here

  1. Pero entonces, ¿cómo puedo enviar comandos a la Terminal.app?
  2. ¿Cómo puedo presionar cmd + enter para enviar una línea desde TextWrangler a la Terminal?

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.

2voto

Baczek Puntos 150

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

Después de eso:

  • Abra las preferencias del TextWrangler
  • Seleccione "Menús y atajos" --> "scripts" --> "su scriptsscriptscripts" para añadir su acceso directo al scriptsscriptscripts
  • TextWrangler acepta las teclas (cmd + enter) como acceso directo enter image description here

0 votos

Esto es exactamente lo que necesitaba. Supongo que ahora podemos utilizar el autocompletado de alguna manera... Voy a averiguarlo. ¡Gracias!

0 votos

@jackjr300, ¿En qué aplicación has procesado esa imagen de Preferencias para añadir las flechas, en particular la flecha curva?

1 votos

@user3439894, yo uso el Preview aplicación en El Capitán , menú " Herramientas " --> " Anotar " --> " Flecha ". - Luego arrastra uno de los tiradores azules para mover la flecha o cambiar su tamaño, arrastra el tirador verde para hacer una curva. - Puedes cambiar el estilo de la forma, puedes añadir texto al principio o al final de la flecha.

1voto

user3439894 Puntos 5883

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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X