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


9

Eu gostaria de saber se isso é possível.

Desejo 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.

Sei que posso fazer algo como CMD + T e abrir cada um deles usando cd ~/folderA1e assim por diante, mas se houver um comando que eu possa configurar ou um script que, após a execução, eles farão isso de uma só vez, eu adoraria saber se houver uma maneira de fazê-lo.

Respostas:


8

Atualização: O iTerm mais recente exige que você altere a sintaxe, para que fique assim:

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 aqui , 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 de shell denominada launch, para que você possa colocá-la no seu ~/.bash_profileou onde quer que ele seja executado na inicialização.

  • Percorremos o resultado da expansão do suporte Bash ~/folderA{1..5}, que é o ~/folderA1caminho completo ~/folderA5.

  • Chamamos a biblioteca AppleScript do iTerm2 osascriptpara criar uma nova guia, ativá-la, iniciar a sessão padrão e cdpara o diretório especificado.


1

O itermocil pode lidar com isso.

Com o seguinte em um arquivo chamado ~/.itermocil/foo.yml, o comando itermocil fooabriria 5 guias nas pastas especificadas. (Este é um layout realmente simples - o itermocil pode fazer muito mais que isso.)

windows:
  - name: 1
    root: ~/folderA1
    layout: even-horizontal
    panes:
      - focus: true
  - name: 2
    root: ~/folderA2
    layout: even-horizontal
    panes:
      - focus: true
  - name: 3
    root: ~/folderA3
    layout: even-horizontal
    panes:
      - focus: true
  - name: 4
    root: ~/folderA4
    layout: even-horizontal
    panes:
      - focus: true
  - name: 5
    root: ~/folderA5
    layout: even-horizontal
    panes:
      - focus: true
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.