Digamos que você esteja na pasta / very / cool / e / profundamente / aninhada /. E você deseja abrir uma nova guia do terminal na mesma pasta.
Como você faria isso?
Eu uso o Mac OS e o Zsh.
Use Oh-My-Zsh e adicione o plugin 'osx' no seu ~ / .zshrc como:
plugins=(osx)
Se você usa o Terminal App do OSX, também precisa adicionar o terminalapp
plug-in: credit
plugins=(osx terminalapp)
Se você usa o iTerm, precisa definir uma opção de configuração ( observe que talvez você não precise dos plugins zsh para que isso funcione ): credit
Preferências> Perfis> Padrão> Geral> Diretório de Trabalho> Reutilizar a opção de diretório da sessão anterior
É tudo o que você precisa fazer!
rails
executando, e tentar abrir uma nova janela via comando n, acabo voltando ao meu diretório pessoal.Outra opção agora disponível no Mac OS X Lion está usando o recurso interno. Ele usa 'seqüências de escape' para descobrir o diretório atual. Para mim, funciona se eu usar esses comandos no meu .zshrc:
também é possível usar
PS1
(para Bash, neste wiki ):onde
\e]2;
é a sequência de escape para imprimir itens na barra de título. Ele parece que Terminal.app está recebendo suas informações de lá.Mais Informações:
fonte
/etc/bashrc
você verá que ele também suporta um novo código de escape para informar o Terminal do diretório de trabalho usando umafile:
URL, que pode manipular todos os nomes de caminho válidos por meio de codificação percentual (os títulos da janela / guia podem conter apenas um subconjunto de caracteres ASCII )\e]7;file://hostname/percent-encoded-pathname\a
chpwd () {print -Pn "\e]2; %~/ \a"}
?Esta é uma versão muito simples que eu usei no bash e também funciona no zsh. Ele salva a pasta atual em um arquivo, após cada comando (Não fere muito IMO) e abre um novo terminal na pasta atual salva.
adicione o seguinte a .zshrc
fonte
O gdirs parece uma maneira de quase fazê-lo: nova guia, depois o gdirs para selecionar o diretório mais profundo e pronto. Minha primeira idéia foi tornar a pilha de diretórios compartilhada entre todas as guias e fazer o cd ~ 1 após a nova guia, mas não consigo encontrar como fazer isso, pois parece que cada instância do zsh mantém a sua. O compartilhamento de histórico passa por um arquivo comum, então talvez isso também possa ser feito aqui ...
fonte
É assim que você faz no bash.
Esse script de shell informará (silenciosamente literalmente, usando o Applescript) Terminal.app para abrir uma nova guia e depois alternar para o diretório atual:
... coloque o script do shell acima em um diretório no seu
$PATH
(ie / usr / local / bin) e verifique se ele é executável:( fonte )
fonte
Se você precisar abrir essa nova guia agora mesmo, sem alterar seus arquivos de configuração ou instalar novos plugins, execute o seguinte:
Em seguida, abra uma nova guia Terminal manualmente (com ⌘T) e na nova guia:
Aviso : isso substituirá o conteúdo da área de transferência do sistema.
Um método alternativo e mais longo que não substitui a área de transferência:
Abra sua nova guia.
fonte
De acordo com o comentário de Pieter acima, uma vez que os
plugins=(git osx)
plug - ins estejam instalados, basta digitartab
e ele abrirá uma nova guia no diretório atual.fonte
Se você deseja que o diretório seja alterado automaticamente quando uma nova guia é aberta, use o plugin dirpersist .
O plugin osx salva apenas o último diretório, mas você precisa executar o comando
tab
para abrir uma nova guia, o que nem sempre é possível (se, por exemplo, você estiver executando algo na sua guia atual).fonte
Adicionar terminalapp ao .zshrc não funcionou para mim, então procurei o plugin
~/.oh-my-zsh/plugins/terminalapp
e ele me diz:fonte
Novas guias já abertas na mesma pasta (Cmd + T). Para novas janelas (Cmd + N), a solução da Pieter está correta:
fonte