Como configuro um AppleScript para abrir uma nova guia iTerm2 e alterar o diretório?

17

No OS X, como configuro um AppleScript para

  • abra uma nova guia iTerm2
  • mudar para um diretório
  • limpe o console
  • ecoar o diretório atual

Eu tinha algo parecido com isso antes no Terminal normal, mas não consigo nem encontrar o guia de script para o iTerm2.

cwd
fonte
11
Vá para o site deles , clique em " Documentação " e clique em " Script ". Ou o que você quer dizer com "guia de script"?
Daniel Beck
Se o seu tentando isso com iTerm2, a solução é postado aqui: stackoverflow.com/questions/38692346/new-tab-in-iterm2#_=_
Andy Cochrane

Respostas:

16

A solução de Daniel de alguma forma abre uma nova janela - também, a exec commanddeclaração não funciona como o esperado. É preciso em write textvez disso.

Além disso, você tem que usar

launch session "Default Session" 

para obter uma nova guia.

A seguir, faça o que você pediu:

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
fonte
escrever texto adiciona o retorno / nova linha por conta própria?
Daniel Beck
Aparentemente, sim! Eu tentei de tudo antes de postar. exec commandfaz alguma coisa , mas não sei exatamente o que.
slhck
Obrigado por uma boa resposta. Também achei os comentários na parte inferior desta página úteis para escrever um script "cd to": code.google.com/p/iterm2/wiki/AppleScript
cwd
Acredito que o exec realmente seja executado exec(3)e, portanto, só funcione em uma nova sessão e execute o processo exec: ed em vez de um shell.
Henrik N
11
@slhck nvm, achou esta pequena jóia com o uso EOD: apple.stackexchange.com/questions/103621/...
Ken
0

Não está em um Mac no momento, então pode não funcionar 100% (adaptou esta resposta minha ).

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

Você provavelmente pode concatenar os comandos para

cd Downloads ; clear ; pwd
Daniel Beck
fonte