Jak skonfigurować AppleScript, aby otworzyć nową kartę iTerm2 i zmienić katalog?

17

W OS X, jak skonfigurować AppleScript do

  • otwórz nową kartę iTerm2
  • przejdź do katalogu
  • wyczyść konsolę
  • echo bieżącego katalogu

Miałem już coś takiego dla zwykłego terminalu, ale nie mogę nawet znaleźć przewodnika skryptowego dla iTerm2.

cwd
źródło
1
Przejdź na ich stronę internetową , kliknij „ Dokumentacja ”, a następnie „ Skrypty ”. A co rozumiesz przez „przewodnik skryptowy”?
Daniel Beck
Jeśli próbujesz tego z iTerm2, rozwiązanie jest opublikowane tutaj: stackoverflow.com/questions/38692346/new-tab-in-iterm2#_=_
Andy Cochrane

Odpowiedzi:

16

Rozwiązanie Daniela w jakiś sposób otwiera nowe okno - także exec commandinstrukcja nie działa zgodnie z oczekiwaniami. write textZamiast tego trzeba .

Musisz także użyć

launch session "Default Session" 

aby uzyskać nową kartę.

Następujące czynności wykonuje to, o co prosiłeś:

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
źródło
pisać tekst dodaje zwrot / nowy wiersz?
Daniel Beck
Najwyraźniej tak! Próbowałem wszystkiego przed opublikowaniem. exec commandrobi coś , ale nie wiem co dokładnie.
slhck,
Dziękuję za miłą odpowiedź. Znalazłem też komentarze na dole tej strony, które były pomocne w pisaniu skryptu „cd to”: code.google.com/p/iterm2/wiki/AppleScript
cwd
Wierzę, że exec faktycznie działa, exec(3)więc działa tylko w nowej sesji i uruchamia proces exec: ed zamiast powłoki.
Henrik N
1
@slhck nvm, znalazłem ten mały klejnot przy użyciu EOD: apple.stackexchange.com/questions/103621/…
Ken
0

Obecnie nie na komputerze Mac, więc może nie działać w 100% (dostosowałem tę odpowiedź ).

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

Prawdopodobnie możesz połączyć polecenia z

cd Downloads ; clear ; pwd
Daniel Beck
źródło