¿Cómo configuro un AppleScript para abrir una nueva pestaña iTerm2 y cambiar el directorio?

17

En OS X, ¿cómo configuro un AppleScript para

  • abra una nueva pestaña iTerm2
  • cambiar a un directorio
  • limpiar la consola
  • echo el directorio actual

Tenía algo como esto antes para Terminal regular, pero ni siquiera puedo encontrar la guía de scripting para iTerm2.

cwd
fuente
1
Vaya a su sitio web , haga clic en " Documentación ", luego haga clic en " Scripting ". ¿O qué quieres decir con "guía de secuencias de comandos"?
Daniel Beck
Si está intentando esto con iTerm2, la solución se publica aquí: stackoverflow.com/questions/38692346/new-tab-in-iterm2#_=_
Andy Cochrane

Respuestas:

16

La solución de Daniel de alguna manera abre una nueva ventana; además, la exec commanddeclaración no funciona como se esperaba. Uno tiene que write texthacerlo en su lugar.

Además, tienes que usar

launch session "Default Session" 

para obtener una nueva pestaña.

Lo siguiente hace lo que solicitó:

tell application "iTerm"
    make new terminal
    tell the current terminal
        activate current session
        launch session "Default Session"
        tell the last session
            write text "cd ~/Downloads; clear; pwd"
        end tell
    end tell
end tell
slhck
fuente
escribir texto agrega el retorno / nueva línea por sí solo?
Daniel Beck
Al parecer, lo hace! Intenté todo antes de publicar. exec commandhace algo , pero no sé exactamente qué.
slhck
Gracias por una buena respuesta. También encontré los comentarios en la parte inferior de esta página para ser útil en la escritura de un "cd para" script: code.google.com/p/iterm2/wiki/AppleScript
CWD
Creo que exec realmente se ejecuta exec(3)y, por lo tanto, solo funciona en una nueva sesión, y ejecuta el proceso exec: ed en lugar de un shell.
Henrik N
1
@slhck nvm, encontré esta pequeña joya con uso de EOD: apple.stackexchange.com/questions/103621/…
Ken
0

No en una Mac en este momento, por lo que podría no funcionar al 100% (adaptado esta respuesta mía ).

tell application "iTerm"
    activate
    set t to (make new terminal)
    tell t
        tell (make new session at the end of sessions)
            exec command "cd Downloads"
            exec command "clear"
            exec command "pwd"
        end tell
    end tell
end tell

Probablemente pueda concatenar los comandos para

cd Downloads ; clear ; pwd
Daniel Beck
fuente