Abra várias abas no iTerm2 com diretórios específicos

7

Eu gostaria de saber se isso é possível.

Eu quero configurar algum script ou comando que abrirá 5 guias e cada guia que abrirá terá seu próprio diretório especificado

Tudo na mesma janela

tab 1: open ~/folderA1
tab 2: open ~/folderA2
tab 3: open ~/folderA3
tab 4: open ~/folderA4
tab 5: open ~/folderA5

Isso está no iTerm2 no Mac OS X.

Eu sei que posso fazer algo como CMD + T e depois abrir cada um deles usando cd ~/folderA1 e assim por diante, mas se houver um comando que eu possa configurar ou um script que depois de executar eles farão isso tudo uma vez eu adoraria saber se existe uma maneira de fazer isso.

    
por Ali 08.06.2013 / 22:02

1 resposta

7

Atualização: O novo iTerm exige que você altere a sintaxe, assim seria:

tell application "iTerm"
    tell current window
        create tab with default profile
    end tell
    tell current tab of current window
        set _new_session to last item of sessions
    end tell
    tell _new_session
        select
        write text "cd \"$dir\""
    end tell
end tell

Veja também esta resposta aqui .

Para versões mais antigas do iTerm:

Tomando o script da minha resposta , você pode fazer algo assim:

launch () {
for dir in ~/folderA{1..5}; do
/usr/bin/osascript <<-EOF
tell application "iTerm"
    make new terminal
    tell the current terminal
        activate current session
        launch session "Default Session"
        tell the last session
            write text "cd \"$dir\""
        end tell
    end tell
end tell
EOF
done
}

Para explicar o que está acontecendo:

  • Criamos uma função shell chamada launch , para que você possa colocar isso em ~/.bash_profile ou onde quer que seja executado na inicialização.

  • Apresentamos o resultado da expansão da chave de concha ~/folderA{1..5} , que fornece ~/folderA1 a ~/folderA5 .

  • Chamamos a biblioteca AppleScript iTerm2 por meio de osascript para criar uma nova guia, ativá-la, ativar a sessão padrão e cd para o diretório especificado.

por 08.06.2013 / 23:57