OS X El Capitan 10.11 O Terminal 2.6 não abre novas abas com o mesmo diretório de trabalho

2

Estou usando as configurações padrão para o Terminal, mas quando eu crio uma nova guia, meu diretório de trabalho é sempre configurado para minha pasta pessoal em vez do diretório de trabalho atual da guia anterior.

Aqui está uma imagem das minhas Preferências do Terminal:

Comovocêpodevernasconfiguraçõesgerais,"Novas guias abertas com:" está definido como "Mesmo diretório de trabalho". Isso não parece estar funcionando. Acho que lembro disso funcionando em versões mais antigas do Terminal.

Meu shell de login padrão está definido como /bin/zsh e não tenho ~/.zshrc .

Eu gostaria de poder resolver esse problema sem instalar algo como oh-my-zsh ou ter que adicionar algo a ~/.zshrc . Isso deve funcionar sem nada disso. (Pelo menos em iTerm2.)

    
por Chase Stubblefield 21.11.2015 / 00:12

3 respostas

2

Por padrão no OS X, o Bash é configurado para comunicar o diretório de trabalho atual ao Terminal usando sequências de escape em cada prompt, usando a variável de ambiente PROMPT_COMMAND .

Antes do OS X El Capitan 10.11, esse código é encontrado em /etc/bashrc . No 10.11 e posterior, ele foi movido para o arquivo /etc/bashrc_Apple_Terminal específico do terminal e /etc/bashrc executa o arquivo específico do terminal apropriado.

As versões atuais do Oh My Zsh! têm código semelhante para comunicar o diretório de trabalho ao Terminal.

O motivo mais provável de que isso tenha parado de funcionar é que você alterou sua configuração. Talvez você estivesse usando o Bash antes ou tivesse o Oh My Zsh instalado e agora você não. Outra possibilidade é que você tenha configurado o shell para definir o título da janela ou aba do terminal para conter o nome do caminho do diretório de trabalho: como uma conveniência para configurações mais antigas, se o diretório de trabalho não for definido explicitamente, mas o o título da janela ou tab contém um nome de caminho local válido, o Terminal o tratará como o diretório de trabalho atual.

    
por 28.11.2015 / 14:04
2

Uma maneira simples de garantir que a opção "Novas janelas / guias abertas com o mesmo diretório de trabalho" do Terminal.app ainda funcione com o zsh, já que o seu shell de login serve para instruir o zsh a comunicar as mudanças no diretório de trabalho atual ao Terminal.app. sequência de fuga. Eu fiz isso no meu .zshrc com isso:

# tell terminal.app about cwd so new tabs open in same dir
tell_terminal_cwd() {
   cwd=$(print -rD $PWD)
   echo -ne "3]0;${cwd}
# tell terminal.app about cwd so new tabs open in same dir
tell_terminal_cwd() {
   cwd=$(print -rD $PWD)
   echo -ne "3]0;${cwd}%pre%7"
}
precmd_functions+=(tell_terminal_cwd)
7" } precmd_functions+=(tell_terminal_cwd)

As instruções do terminal.app sobre este tópico dizem que fornecer o diretório de trabalho atual como um arquivo codificado corretamente: // URL incluindo o nome do host, mas descobri que o acima funciona bem e também parece legal no título da guia.

    
por 16.12.2016 / 12:25
0

Como você, eu queria fazer isso sem carregar todos de Oh-My-Zsh.

Acontece que, a partir de 4e306887 (por que a OMZ não parece ter qualquer conceito de 'versões!'? Prática de desenvolvimento de software ruim. ಠ_ಠ), o arquivo termsupport.zsh que eles incluem trata disso para você. Você também terá que copiar o arquivo functions.zsh .

Pessoalmente, eu uso o super leve (como, eu li todo do código antes de começar a usá-lo porque é um arquivo de ≤ 500 linhas) Zgen.zsh . (Ele suporta explicitamente o uso de módulos OMZ e tais sem carregar o resto do OMZ!) Se você optar por fazer isso, aqui está a solução com isso:

if ! zgen saved

   ...

   # Steal omz's termsupport for Apple Terminal. (Hacky; will have to
   # watch to see if this changes.) - <http://superuser.com/a/1031708/22030>
   zgen load robbyrussell/oh-my-zsh lib/functions.zsh
   zgen load robbyrussell/oh-my-zsh lib/termsupport.zsh

   ...

fi
    
por 26.01.2016 / 20:52